2011-03-24 100 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服務器變量,以確保該模式匹配在重定向之前。