我有一个mvc应用,我需要将旧网址重定向为新格式。
这些旧网址由以下格式表示:“/ busca /term / 0/187236 / 0.aspx”(请注意,参数计数可能会有所不同),我需要将其重定向到“/ term”。当我尝试处理RouteConfig
中的重定向时,它不会通过ExtensionlessUrlHandler
,而是通过StaticFile处理程序,这会导致重定向无法正确处理。
我无法禁用StaticFile
处理程序,因为我需要它用于样式表和脚本。
我在路线中尝试了catchall参数,但它不起作用。我还尝试将StaticFile
处理程序仅用于css和js文件,并为aspx文件启用ExtensionlessUrlHandler
,但它也不起作用。
我只尝试过这条路线然而却没有用:
routes.MapRoute(
"Default",
"{*path}",
new {controller = "Home", action = "Index"});
有人知道某种方法吗?
答案 0 :(得分:1)
听起来你需要从UrlRoutingModule中删除managedHandler
前置条件。
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
</modules>
</system.webServer>
这样,带扩展名的URL将通过MVC路由运行,而不是直接进入静态文件处理程序。
如果失败,请确保您的路线配置正确。