2011-03-24 97 views
1

我从IIRF导入到IIS URL重写规则,并且大多数似乎工作正常。我只是注意到一些网址中有百分号(试图重定向一些不好的入站链接,其中编码了百分号的字符)。当百分比在那里时,正则表达式似乎不起作用,所以我认为它正试图解释为一个命令或其他东西。无法找到任何文档,任何人都知道?iis 7.5 url重写 - 不处理百分比'%'符号

+1

请记住:您可以在IIS7上使用IIRF。 – Cheeso 2011-03-24 00:23:27

+0

Cheeso,我还是:)但一些网站需要使用内置的一个。 – 2011-03-30 02:35:44

+0

请参阅serverfault:http://serverfault.com/questions/257680/properly-handle-iis-request-with-percent-sign-in-url – 2012-09-26 15:54:18

回答

0

似乎重写规则已经撤消了url编码,所以它不再看到%3E那样,而是作为'<'..因此,使用a>来代替%3E会有诀窍。现在,去修复一堆网址。哎呀。

编辑:

另外,如果你的手编辑web.config(而不是使用UI编辑器),您将需要使用& LT;为<符号。最好使用UI来避免混淆。

1

我接受的答案在我的情况下不起作用,但我发现了另一种设置重写规则的方法。这将做301重定向。

请求的URL: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> 

基本上,这场比赛将工作在任何网址,我们使用的条件与UNENCODED_URL服务器变量,以确保该模式匹配在重定向之前。