使用ExtensionLessHandler处理aspx页面

时间:2015-07-16 17:20:26

标签: c# asp.net asp.net-mvc iis

我有一个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"});

有人知道某种方法吗?

1 个答案:

答案 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路由运行,而不是直接进入静态文件处理程序。

如果失败,请确保您的路线配置正确。