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 に答える