IIS重写模式匹配完全URL

时间:2012-04-02 05:52:12

标签: iis url-rewriting rewrite

我运行了IIS7.5,并且我正在尝试匹配显式网址。以下代码不起作用。

 <rule name="presid" stopProcessing="true">
    <match url="(.*)" />
        <conditions>
            <add input="{REQUEST_URI}" matchType="Pattern" pattern="http://www.presid.com/presid" ignoreCase="true" negate="false" />
        </conditions>
    <action type="Redirect" url="http://www.domain.com/presid" />
  </rule>

I've also tried escaping the periods:
http://www\.presid\.com/presid
but that doesn't seem to work either.

如何使用IIS7.5匹配特定的完整网址?

由于

这有效,但并不完全符合我的要求:(。*)/ presid,但我有破坏的图像: http://domain.com/images/presid/eee.jpg

我不希望该图像被重定向。

2 个答案:

答案 0 :(得分:6)

REQUEST_URI不包含主机名。

改为使用:

<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/presid$" ignoreCase="true" negate="false" />

答案 1 :(得分:2)

当我需要匹配完整的完整网址时,我使用了2个条件,一个用于主机,另一个用于其他条件,例如:

<add input="{HTTP_HOST}" pattern="www.yourdomain.com" />
<add input="{REQUEST_URI}" pattern="pages/yourpage.aspx" />