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