2011-10-22 267 views
0

我有一個入站鏈接,其中有很多垃圾。我的網站只是加載主頁並忽略查詢字符串,但我想檢測查詢字符串並重定向到一個乾淨的家庭網址。IIS 7.5的URL重寫幫助 - 奇怪的查詢字符串

的URL看起來是這樣的:

http://www.mysite.url/?c%253E 'dmjdlgsbve%253E2'lfzxpset%253E'sbol%253E2'f%253E'vsm%253Eiuuq%253B00xxx%252Fopdmjdlz%252Fdpn0'gffe%253Eopqbz'qsjdf%253E'太貝%253Ebd7g8g73cc3c7d%253Af5925f3efd2f62dcd'zbsht%253Exxx%252Fopdmjdlz%252Fdpn

我似乎無法作出這樣的捕獲這個查詢字符串的規則,讓我重定向到http://www.mysite.url。有任何想法嗎?

回答

1

這很容易做到。首先,您必須確保您位於主頁上(即空請求URL),然後在條件中檢查非空查詢字符串。如果兩者都是這種情況,則永久重定向回到同一個URL(=沒有查詢字符串的URI)。

像:

<rule name="Remove query string" stopProcessing="true"> 
    <match url="^$" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="^$" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="{URL}" appendQueryString="false" /> 
</rule> 

如果你願意,你可以添加一個更具體的條件,讓它只匹配這個特定的入站鏈接。

更新: 我懷疑您的網址中存在一些雙重網址編碼。例如,%253E很可能是%3E,因爲%25是編碼百分比符號的URL。而%3E是>字符的URL編碼。因此,我認爲你將有更多的運氣與此:

<rule name="Remove query string" stopProcessing="true"> 
    <match url="^$" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="^c%3E'dmjdlgsbve%3E2'lfzxpset%3E'sbol%3E2'f%3E'vsm%3Eiuuq;00xxx/opdmjdlz/dpn0'gffe%3Eopqbz'qsjdf%3E'tbq%3Ebd7g8g73cc3c7d:f5925f3efd2f62dcd'zbsht%3Exxx/opdmjdlz/dpn$" /> 
    </conditions> 
    <action type="Redirect" url="{URL}" appendQueryString="false" /> 
</rule> 
+0

我想,雖然檢測只是這個特定的查詢字符串,但它似乎像一些在裏面的人物都扔過濾網...喜歡的百分比標誌和其他一些。我想保留其他querystrings完好無損。 –