IIS 7礼貌尾随斜杠似乎与我的URL重写规则冲突

时间:2012-02-28 21:21:24

标签: iis-7 url-rewriting

我刚开始使用c#.net web.config中的URL Rewrite 2.0。我的web.config看起来像这样:

<rewrite>
  <rules>
    <rule name="RemoveTrailingSlashRule2" stopProcessing="true">
      <match url="(.*)/$" />
      <conditions>
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
      </conditions>
    <action type="Redirect" url="{R:1}" />
  </rule>
 </rules>
</rewrite>

这应删除URL上的尾部斜杠。当我运行应用程序时,规则似乎在根级别工作,所以这......

www.mysite.com/

...被重定向到......

www.mysite.com/

...但重定向在其他级别不起作用。

所以问题在于......

www.mysite.com/pages/

...最后留下的斜杠留在原地,如果我试试这个......

www.mysite.com/pages

...尾部斜线实际上是APPENDED。

我的猜测是,这是IIS 7添加的'礼貌尾随斜线',但我不知道如何获取URL重写规则来覆盖它?

1 个答案:

答案 0 :(得分:1)

我知道这已经有一年了,但我遇到了同样的问题所以我决定发布解决方案。

问题是:

<match url="(.*)/$" />

应该是

<match url="(.*)\/$" />

一旦改变一切都会有效。