Dan*_*zzi 5 asp.net-mvc url-rewriting iis-express
我正在使用 IIS Express 开发一个 MVC 3 应用程序,该应用程序正在 web.config 中进行一些 URL 重写。我遇到了一些奇怪的事情,其中一些规则运行良好,而另一些则失败。
例如这个工作:
<rule name="Remove ETag">
<match serverVariable="RESPONSE_ETag" pattern=".+" />
<action type="Rewrite" value="" />
</rule>
Run Code Online (Sandbox Code Playgroud)
(来源:https : //stackoverflow.com/a/8089525/88709)
这个没有(Unrecognized attribute 'url'在第二行给出):
<rule name="Remove trailing slash" stopProcessing="true">
<match url="(.*)/$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="{R:1}" />
</rule>
Run Code Online (Sandbox Code Playgroud)
(来源:http : //blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx)
根据ScottGu 的Introducing IIS Express,IIS Express 启用了完整的 Web 服务器功能集——包括 SSL、URL 重写、媒体支持和所有其他 IIS 7.x 模块。
我倾向于相信 IIS Express 附带的 URL Rewrite 模块可能是 1.0 版本,而不是 2.0。所以我安装了URL Rewrite Module 2.0,但我仍然遇到同样的错误。
有没有人知道为什么会发生这种情况?如果重要,我的设置是 Visual Studio 2010 SP1、IIS Express 7.5.1070、ASP.NET MVC 3。
问题是我把它放在了<rule>错误的节点中;“删除尾部斜杠”规则应该放在 inside 中<rules></rules>,但我错误地将其放置在其中<outboundRules></outboundRules>(顺便说一句,这是“删除 ETag”规则所在的位置)。
| 归档时间: |
|
| 查看次数: |
15722 次 |
| 最近记录: |