繁体   English   中英

URL重写和IIS Express:有些规则有效,有些则无效

[英]URL Rewrite and IIS Express: some rules work, some don't

我正在使用IIS Express开发MVC 3应用程序,该应用程序正在web.config中进行一些URL重写。 我有些奇怪,有些规则运行得很好,而有些规则却失败了。

例如,这一作品:

<rule name="Remove ETag">
 <match serverVariable="RESPONSE_ETag" pattern=".+" />
 <action type="Rewrite" value="" />
</rule>

(来源: 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>

(来源: http : //blogs.iis.net/ruslany/archive/2009/04/08/10-url-rewriting-tips-and-tricks.aspx

根据ScottGu的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>放在了错误的节点上。 “删除尾部斜杠”规则应该放在<rules></rules> ,但是我错误地将其放置在<outboundRules></outboundRules> (BTW是“删除ETag”规则的所在)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM