2013-03-13 83 views
3

我有一個URL格式IIS7 url重寫問題時有「?」

abc/pqr/xyz/?word1 

,這一點需要重定向到

abc/pqr/xyz/?word2 

是可能使用IIS7改寫呢?

+0

你想重寫查詢字符串? – cheesemacfly 2013-03-13 18:45:12

+0

@cheesemacfly是的,我們網站上的一類信息已經發生了變化,所以這個查詢字符串需要被重定向給任何加了書籤的舊鏈接。顯然,我們正在修復我們網站上的任何鏈接,重定向只是爲了讓舊鏈接不會中斷:) – 2013-03-14 11:39:51

回答

3

它使用IIS7重寫模塊具有以下規則是可能的:

<rule name="Rewrite querystring" stopProcessing="true"> 
    <match url="^abc/pqr/xyz/?$" /> 
    <conditions> 
     <add input="{QUERY_STRING}" pattern="^word1$" /> 
    </conditions> 
    <action type="Redirect" url="{R:0}?word2" appendQueryString="false" /> 
</rule> 

它的作用是:檢查URL是abc/pqr/xyz/abc/pqr/xyz和查詢字符串完全word1。如果是,它會將用戶重定向到相同的url({R:0}),但會附加?word2

選擇appendQueryString="false"選項很重要,因爲您不希望模塊在最後附加word1

默認情況下,如果沒有指定,重定向是一個301(永久),關於@Owen註釋,似乎是最適合你的情況!

+0

它對我來說真的很好。謝謝。非常感激 – 2013-03-15 11:56:07

0

here

你需要指定的URL匹配, 「ABC/PQR/XYZ」,然後將查詢字符串匹配和替換。

+0

Just does not似乎工作。這是我在web.config中的代碼 <! - language:c# - > <添加輸入= 」{QUERY_STRING}「 圖案= 」(字詞)「/> <動作類型= 」重定向「 URL =」/ ABC/\ 1/XYZ/\?WORD2 「/> 2013-03-14 09:36:08

+0

IIS使用準確的RegEx模式匹配。我不是100%的,但你的比賽網址可能需要去掉尾部'/'才能讓比賽成功。 – rbedger 2013-03-14 12:47:18