【问题标题】:Best practice to create robots.txt file inside my asp.net mvc web site在我的 asp.net mvc 网站中创建 robots.txt 文件的最佳实践
【发布时间】:2016-01-17 02:28:34
【问题描述】:

我想为我的asp.net mvc-5 网站创建一个robots.txt,现在我找到了这个关于实现这个任务的链接:-

http://rehansaeed.com/dynamically-generating-robots-txt-using-asp-net-mvc/

在此链接中,他们正在创建一个单独的控制器和路由规则来构建 robots.txt,所以我不知道为什么我不能只创建 robot.txt 文件并将其添加到我的网站的根目录网站如下:-:-

如果我导航到以下 URL http://www.mywebsite.com/robots.txt,文本内容将在哪里显示,而无需为此创建单独的控制器?

所以我的问题是是否可以将 robots.txt 直接添加到我的网站根目录,而不必在控制器和单独的路由规则中这样做,以使事情变得更简单??

【问题讨论】:

  • 是的,继续手动添加robots.txt。这些链接正在构建动态站点地图(不是机器人文件),因此您无需手动更新站点地图 xml。
  • @jasen 抱歉,我似乎提供了一个错误的 URL,我用我正在谈论的正确 url 更新了我的问题,在该示例中,他们定义了如下路由规则 [Route("robots.txt" , Name = "GetRobotsText"), OutputCache(Duration = 86400)]
  • 我不记得上次我说过“我希望我的机器人文件是实时动态生成的”。但我想这很酷。

标签: asp.net asp.net-mvc asp.net-mvc-5 robots.txt


【解决方案1】:

在我的网站上,asp net core 3.1,我只是使用了以下简单的操作:

    [Route("/robots.txt")]
    public ContentResult RobotsTxt()
    {
        var sb = new StringBuilder();
        sb.AppendLine("User-agent: *")
            .AppendLine("Disallow:")
            .Append("sitemap: ")
            .Append(this.Request.Scheme)
            .Append("://")
            .Append(this.Request.Host)
            .AppendLine("/sitemap.xml");

        return this.Content(sb.ToString(), "text/plain", Encoding.UTF8);
    }

【讨论】:

  • 对于一个简单/静态的 robots.txt 我发现直接从端点路由返回更容易,例如endpoints.MapGet("/robots.txt", async context => await context.Response.WriteAsync("User-Agent: *\nAllow: /"));
【解决方案2】:

如果您需要动态生成内容,那么这是有道理的,因为它会为您提供这种能力。但除此之外,我在我的应用程序中使用 robots.txt 文件没有任何问题。

【讨论】:

    【解决方案3】:

    在 MVC 应用程序根目录中放置一个 robots.txt 文件,如屏幕截图所示,与 Startup.cs 相同,对我来说效果很好。

    【讨论】:

      猜你喜欢
      • 2011-04-25
      • 2010-12-24
      • 1970-01-01
      • 2011-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-21
      • 2020-07-12
      相关资源
      最近更新 更多