ASP.NET HttpHandler 映射到机器人.txt无需访问 IIS
本文关键字:访问 IIS txt 机器人 NET HttpHandler 映射 ASP | 更新日期: 2023-09-27 18:31:58
有没有一种简单的方法可以将/robots.txt映射到仅使用web.config的HttpHandler?我已经尝试了对httpHandlers标签的各种更改,但没有一个有任何区别。所有示例都需要修改 IIS 站点属性,我无法访问这些属性。
有没有办法只使用 web.config 来映射:
<add verb="*" path="/robots.txt" type="Site.RobotsHandler" />
正确?
我目前正在使用 .NET 3.5 和 MVC2。
如果您使用的是 MVC,为什么不创建一个指向 Action 的路由并在那里处理它,而不是创建另一个处理程序?
routes.MapRoute("robots.txt", "robots.txt", new { controller = "Home", action = "Robots" });
根据评论进行编辑
routes.IgnoreRoute("{file}.txt", new { pathInfo = new RobotsIgnore() });
public class RobotsIgnore : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return values[parameterName].ToString().ToLowerInvariant() != "robots.txt";
}
}
根据对其他答案的一些评论,我猜你使用的是 iis6? 据我所知,不可能通过 Web 配置更改 iis6 处理程序映射。 如果不更改默认映射,.txt文件将永远不会到达 asp.net。