这可能是重复的,但是我的Google-foo已经关闭了,因为我无法找到这个简单问题的答案。
我已经将旧网站移动到IIS7.5上的MVC3,我需要将一些旧的.html扩展URL重定向到新的MVC控制器操作。
我添加了网址映射。
<urlMappings>
<!-- Doesn't work -->
<add url="~/OldUrl.html" mappedUrl="~/NewController"/>
<!-- Works but is rewrite instead of redirect -->
<add url="~/OldUrl.aspx" mappedUrl="~/NewController"/>
</urlMappings>
以上原因无效。首先,.html扩展名没有重新映射,其次,.aspx扩展名被重新映射而不是重写。
我尝试添加StaticFileHandler,因为我认为.NET可能忽略了.HTML扩展名,但实际上处理程序已经存在了。
我无法访问IIS管理工具,因为它位于共享主机中,但我应该只需在web.config中添加一些内容即可重定向。
答案 0 :(得分:0)
终于明白了:
<system.webServer>
<!-- The RewriteModule may need to be added if it isn't
already included in machine.config or application.config
<modules>
<add name="RewriteModule" />
</modules>
-->
<rewrite>
<rules>
<rule name="Redirect1">
<match url="^OldUrl.html$" />
<action type="Redirect"
url="/NewController"
redirectType="Permanent" />
</rule>
<rule name="Redirect2">
<match url="^OldUrl.aspx$" />
<action type="Redirect"
url="/NewController"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>