目前我有这个
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)可以正确重定向。
有人可以帮我修复路由吗?
非常感谢。
答案 0 :(得分: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>
答案 1 :(得分:0)
只需添加答案以供参考。
您的代码很好,您只需要添加
routes.RouteExistingFiles = true;