使用ASP.NET MVC动态生成Robots.txt的问题

时间:2017-05-03 17:59:24

标签: c# asp.net asp.net-mvc

来自Dynamically Generating Robots.txt Using ASP.NET MVC

  1.   

    幸运的是,动态创建robots.txt文件非常简单,   使用MVC UrlHelper自动生成站点地图URL。拿一个   看下面的代码:

         

    使用ASP.NET MVC动态生成robots.txt

    public class HomeController : Controller
    {
        [Route("robots.txt", Name = "GetRobotsText"), OutputCache(Duration = 86400)]
        public ContentResult RobotsText()
        {
            StringBuilder stringBuilder = new StringBuilder();
            stringBuilder.AppendLine("user-agent: *");
            stringBuilder.AppendLine("disallow: /error/");
            stringBuilder.AppendLine("allow: /error/foo");
            stringBuilder.Append("sitemap: ");
            stringBuilder.AppendLine(this.Url.RouteUrl("GetSitemapXml", null,
                this.Request.Url.Scheme).TrimEnd('/'));
            return this.Content(stringBuilder.ToString(), "text/plain", Encoding.UTF8);
        }
        [Route("sitemap.xml", Name = "GetSitemapXml"), OutputCache(Duration = 86400)]
        public ContentResult SitemapXml()
        {
            // I'll talk about this in a later blog post.
        }
    }
    
    • 创建robots.txt的时间是否由"动态"这里的意思与"动态"相同。在"动态网络 页面"由JavaScript程序创建?

    • 哪些名称空间和.dll文件是定义的类controllerContentResult

  2.   

    不允许创建以文件扩展名结尾的路由   ASP.NET MVC中的默认值。为了解决这个安全限制,你   需要将以下内容添加到Web.config文件中:

         

    允许Robots.txt的Web.config处理程序

    XHTML
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <!-- ...Omitted -->
      <system.webServer>
        <!-- ...Omitted -->
        <handlers>
          <!-- ...Omitted -->
          <add name="RobotsText"
               path="robots.txt"
               verb="GET"
               type="System.Web.Handlers.TransferRequestHandler"
               preCondition="integratedMode,runtimeVersionv4.0" />
        </handlers>
      </system.webServer>
    </configuration>
    
    • 何时Web.config读取,其内容何时生效?编辑上面的Web.config文件是否意味着创建robots.txt的时机是动态的?

    • 如果我手动添加robots.txt文件,是否必须修改Web.config个文件?

  3. 感谢。

0 个答案:

没有答案