0

現在私はこれを持っています

routes.MapRoute(
    name: "TestRedirect",
    url: "Test/{*pathInfo}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

Test でアクセスするすべてのリクエストが ~/Home/Index にリダイレクトされることを願っています。しかし残念ながら、これは /Test/index.html などのファイル アクセスでは機能しません。ただし、正しくリダイレ​​クトされるのは aspx ファイル (/Test/index.aspx など) だけです。

誰かがルーティングを修正するのを手伝ってくれますか?

どうもありがとう。

4

2 に答える 2

0

その理由は、静的ファイルが IIS によって直接処理され、処理のために ASP.NET に渡されないためです。IIS はそれを静的ファイルと見なしているため、要求がアプリケーションに到達していません。統合パイプライン モードを使用している場合は、次のハンドラーを登録するだけで、すべての要求が/Testマネージド パイプラインとルーティング ルールを通過するようになります。

<system.webServer>
    <handlers>
        <add 
            name="TestFolderHandler" 
            path="Test/*" 
            verb="GET" 
            type="System.Web.Handlers.TransferRequestHandler" 
            preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
</system.webServer>
于 2013-03-01T23:06:12.623 に答える