2013-03-01 50 views
0

目前我有這個如何重定向子文件夾中的所有文件訪問請求?

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

我希望所有的請求下,測試訪問重定向到〜/首頁/索引。 但不幸的是,這不適用於文件訪問,如/Test/index.html。 雖然只有aspx文件(如/Test/index.aspx)被正確重定向。

有人可以幫我修理我的路由嗎?

非常感謝。

+0

你想利用PATHINFO的或忽略它,使用/ Home/Index? – 2013-03-01 20:34:35

+0

@DaveA其實我不需要使用它。我只是抓住它像通配符或其他東西一樣工作。 – ailerifren 2013-03-01 20:39:24

回答

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> 
相關問題