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。

ASP.NET HttpHandler 映射到机器人.txt无需访问 IIS

如果您使用的是 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。