2013-01-23 24 views
1

我試圖使用tuckey URL重寫器和java來重定向具有特定請求參數的所有URL。因此,例如,我想將所有的以下內容:正則表達式使用java/tuckey從URL中跳出問號URL重寫器

http://xxx.com/?refcode=1234

簡單http://xxx.com/

首先是tuckey URL重寫去了解這一點的最好方法是什麼?使用tuckey,我已經成功地匹配URL,如... CO/refcode = 1234(不?),使用這樣的事情:

<rule> 
    <note>Remove agent ID from URL without query parameters</note> 
    <from>^/.*refcode=.*$</from> 
    <to type="redirect">/redirect.do</to> 
</rule> 

,但我似乎不能寫一個正則表達式,將匹配該?以及。我試過逃避? (使用\?),我也嘗試使用正則表達式與[?]沒有運氣。所以,這些方針的東西似乎不工作:

<rule> 
    <note>Remove agent ID from URL without query parameters</note> 
    <from>^/[?]agentId=.*$</from> 
    <to type="redirect">/bank.do</to> 
</rule> 

OR

<rule> 
    <note>Remove agent ID from URL without query parameters</note> 
    <from>^/\?agentId=.*$</from> 
    <to type="redirect">/bank.do</to> 
</rule> 

會很感激,如果有人可以讓我知道我該怎麼去寫正確的正則表達式來匹配這個URL

回答

0

\?是逃避?的正確方法,我會避免在最後使用$。

<from>^/\?refcode=(\d+)</from> 

您還可以使用條件標籤具有type =「參數」使用條件標籤

<condition type="query-string">refcode=(\d+)</condition> 
<from>/</from> 
+0

似乎爲我工作。感謝領先。 – user2003960