正则表达式使用java / tuckey URL重写器从URL中转义问号

时间:2013-01-23 14:12:31

标签: java mod-rewrite url-rewriting

我正在尝试使用tuckey URL重写器和java来重定向具有特定请求参数的所有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> 

如果有人能告诉我如何编写正确的正则表达式以匹配此网址,我将非常感激

1 个答案:

答案 0 :(得分:0)

\?是逃脱的正确方法?,我会避免在最后使用$。

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

您也可以使用CONDITION标记

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