IIS重写模式匹配精确URL

3

我正在运行IIS7.5,并尝试匹配一个明确的URL。以下代码无法工作。

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

我也尝试了转义句号:

http://www\.example\.com/presid

但似乎那也不起作用。我该如何在IIS7.5中匹配一个特定的完整URL?
这个方法可以使用,但并不能完全满足我的需求:(.*)/presid,而且会导致图片无法显示:

http://example.com/images/presid/eee.jpg

我不希望那张图片被重定向。


2
REQUEST_URI不包含主机名。请改用以下内容:<add input="{REQUEST_URI}" matchType="Pattern" pattern="^/presid$" ignoreCase="true" negate="false" /> - itwb
2个回答

7

REQUEST_URI不包含主机名。

使用以下替代方法:

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

3

当我需要匹配一个完整的 URL 时,我使用了两个条件,一个是用于主机部分,另一个是用于剩余部分,例如:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接