我已将以下XML添加到我的SiteUrls.config
文件中:
<RewriterRule>
<SendTo>/pod/</SendTo>
<LookFor>.*abcdefg</LookFor>
</RewriterRule>
当我转到http://localhost/abcdefg
时,它成功将我重定向到http://localhost/pod
。我的localhost是一个IIS 7 Web服务器。
但是,我无法使用相同的配置来处理我们的生产或登台机器。它保持在http://staging.x.com/abcdefg
并出现404错误。
究竟需要设置什么才能使其正常工作?我没有注意到我在本地使用的IIS模块与生产/登台系统上的IIS模块之间存在很大差异。
答案 0 :(得分:1)
您可能需要安装hotfix以支持IIS 7上的无扩展名网址。
获取extensionless URLs working on IIS6 was tricky before并写了很多内容。在IIS6和ASP.NET MVC的早期,您将所有。映射到托管代码。 ASP.NET路由曾经要求RAMFARR设置为true,直到Extensionless URL feature was created。
此KB http://support.microsoft.com/kb/980368中添加了无扩展URL支持,并随ASP.NET MVC 4一起提供。如果您有ASP.NET MVC 4,则您的开发计算机上会有无扩展URL。但是你的服务器可能没有。您可能需要安装此修补程序,或打开RAMMFAR。如果你能避免,我宁愿安装更新而不是打开RAMMFAR。 运行所有模块选项实际上是通配符映射。