我有一个robots.txt,它不是静态的,而是动态生成的.我的问题是创建从root / robots.txt到我的控制器操作的路由.
这有效:
routes.MapRoute( name: "Robots",url: "robots",defaults: new { controller = "Home",action = "Robots" });
这不起作用:
routes.MapRoute( name: "Robots",url: "robots.txt",/* this is the only thing I've changed */ defaults: new { controller = "Home",action = "Robots" });
“.txt”显然导致ASP到barf
解决方法
您需要将以下内容添加到web.config文件中,以允许执行具有文件扩展名的路由.
<?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>
有关详细信息,请参阅我在Dynamically Generating Robots.txt Using ASP.NET MVC上发表的博文.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。