iis 7.5 url rewrite -not processing%'%'符号

时间:2011-03-24 00:19:33

标签: iis iis-7 rewrite url-rewriting

我将IIRF中的规则导入IIS URL Rewrite,大多数似乎都运行正常。我刚注意到一些网址中有一些百分号符号(尝试重定向一些不良的入站链接,其中包含百分比编码字符)。当百分比在那里时,正则表达式似乎不起作用,所以我认为它试图将其解释为命令或其他东西。找不到任何关于此的文档,有谁知道?

2 个答案:

答案 0 :(得分:1)

接受的答案在我的案例中不起作用,但我发现了一种设置重写规则的不同方法。这将进行301重定向。

请求的网址 http://www.shuttercontractor.com/m/vinyl-%E2%80%8Bshutters.aspx
目标网址: http://www.shuttercontractor.com/m/vinyl-shutters.aspx

<rule name="301 Redirect to vinyl shutters category" stopProcessing="true">
    <match url="." ignoreCase="false" />
    <action type="Redirect" redirectType="Permanent" url="m/vinyl-shutters.aspx" />
    <conditions>
        <add input="{UNENCODED_URL}" pattern="m/vinyl-%[Ee]2%80%8[Bb]shutters\.aspx" ignoreCase="false" />
    </conditions>
</rule>

基本上,匹配将适用于任何URL,我们使用带有UNENCODED_URL服务器变量的条件来确保模式在重定向之前匹配。

答案 1 :(得分:0)

似乎重写规则已经撤消了url编码,因此它不再看到%3E,而是看到'&lt;'..所以使用&gt;代替%3E就可以了。现在,去修复一堆网址。哎呀。

编辑:

此外,如果您手动编辑web.config(与使用UI编辑器相比),则需要使用&amp; LT;对于&lt;符号。最好使用UI来避免混淆。