0

有没有一种简单的方法可以仅使用 web.config 将 /robots.txt 映射到 HttpHandler?我已经尝试了对 httpHandlers 标记的各种更改,但没有任何改变。所有示例都需要修改我无法访问的 IIS 站点属性。

有没有办法只使用 web.config 来映射:

<add verb="*" path="/robots.txt" type="Site.RobotsHandler" />

正确吗?

我目前正在使用 .NET 3.5 和 MVC2。

4

2 回答 2

1

如果您使用 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";
    }
}
于 2012-04-23T19:46:28.703 回答
0

根据对其他答案的一些评论,我猜你正在使用 iis6?据我所知,不可能通过 Web 配置更改 iis6 处理程序映射。如果不更改默认映射,.txt 文件将永远无法到达 asp.net。

于 2012-04-23T23:35:23.643 回答