IIS重写模块301重定向删除文件夹添加额外的斜杠

时间:2013-09-13 12:21:53

标签: iis redirect url-rewrite-module

我有这个IIS重写规则

<rule name="Redirect rule for aliased Pages">
    <match url="^/pages/(.*)" />
    <action type="Redirect" url="{R:1}" />
</rule>

我们的想法是将http://mydomain.com/pages/about-us/重定向到http://mydomain.com/about-us/。根据IIS中的测试人员,在这种情况下,R:1约为-us /,但重定向总是转到http://mydomain.com//about-us/(参见double //)。我已经尝试从匹配网址中删除两个正斜杠,并将每个正斜杠留在自己的位置,但似乎没有任何区别。

知道额外/来自何处?

1 个答案:

答案 0 :(得分:1)

URL重写模块在初始尾部斜杠后开始检查,因此以下内容将删除第一级文件夹“pages”:

<rule name="Redirect rule for aliased Pages">
  <match url="^pages/(.*)" />
  <action type="Redirect" url="{R:1}" />
</rule>

测试:

正如所料。

请注意,如果您在单独的文件中包含重写规则,则需要回收应用程序池或重新启动IIS以使更改生效。

此外,规则的顺序也很重要。