有没有一种简单的方法可以仅使用 web.config 将 /robots.txt 映射到 HttpHandler?我已经尝试了对 httpHandlers 标记的各种更改,但没有任何改变。所有示例都需要修改我无法访问的 IIS 站点属性。
有没有办法只使用 web.config 来映射:
<add verb="*" path="/robots.txt" type="Site.RobotsHandler" />
正确吗?
我目前正在使用 .NET 3.5 和 MVC2。
有没有一种简单的方法可以仅使用 web.config 将 /robots.txt 映射到 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。