2011-04-16 52 views
1

我想查詢參數在urlrewrite.xml添加到重定向的URL是這樣的:如何覆蓋Tuckey使用查詢字符串設置?

<rule> 
    <condition name="host">www.foo.com</condition> 
    <from>^/foo/bar</from> 
    <to type="redirect" last="true">http://www.bar.com/foo/bar?test=testString</to> 
</rule> 

但收到的請求有一個PARAM它已經並將所得重定向的URL是這樣的:

http://www.bar-d.mtvi.com/foo/bar?test=testString?test2=test2String

注意第2個「?」。

我想是這樣的:
http://www.bar-d.mtvi.com/foo/bar?test=testString&test2=test2String

使用查詢字符串在urlrewrite元素設置爲「真」。

問題:如何正確傳遞查詢字符串?

感謝您的考慮和任何建議非常感謝!

+0

哼,我有相反的問題:我有use-query-string = false,並希望匹配查詢字符串只有一個規則,並重寫參數的名稱。我不確定這是可能的。 – JBCP 2012-12-19 21:28:46

+0

更多信息在這裏:http://stackoverflow.com/questions/9367232/getting-the-query-string-when-using-tuckey-url-rewrite – tkane2000 2015-01-07 20:32:42

回答

1

好的,我明白了這一點。發生這種情況是因爲我沒有用「$」符號關閉「from」匹配。下面是它應該是什麼樣子:

<rule> 
    <condition name="host">www.foo-d.com</condition> 
    <from>^/foo/bal(\?)?(.*)?$</from> 
    <to type="redirect" last="true">http://www.bar-d.mtvi.com/foo/bar?test=testString&amp;$2</to> 
</rule> 

唯一這裏的問題是,如果在最初的請求沒有查詢字符串,在「到」語句仍然在查詢字符串的結尾增加了一個符號。爲了解決這個問題,你可以創建2個重寫規則,一個與查詢字符串匹配,另一個與外部匹配。