urlrewirte规则:
<rule>
<note> The rule means that hot search filter </note>
<from>/search/(.*)\.htm\?(.*)$</from>
<to>/zogsearch.do?query=$1&$2</to>
</rule>现在访问的页面的url是:www.xxx.com/search/A%26F.htm?type=img&page=1
到后台的url是:www.xxx.com/zogsearch.do?query=A&F&type=img&page=1
所以代码接到query的值为:A
请问urlrewrite要怎么配置?LOG日志:
信息: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter DEBUG: checking for status path on /search/A%26F.htm
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: processing request for /search/A%26F.htm
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: after utf-8 decoding /search/A&F.htm
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: context stripped
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: url /search/A&F.htm?type=img&page=1
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Rule 0 run called with /search/A&F.htm?type=img&page=1
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: matched "from"
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.Rule DEBUG: needs to be forwarded to /zogsearch.do?query=A&F&type=img&page=1
<rule>
<note> The rule means that hot search filter </note>
<from>/search/(.*)\.htm\?(.*)$</from>
<to>/zogsearch.do?query=$1&$2</to>
</rule>现在访问的页面的url是:www.xxx.com/search/A%26F.htm?type=img&page=1
到后台的url是:www.xxx.com/zogsearch.do?query=A&F&type=img&page=1
所以代码接到query的值为:A
请问urlrewrite要怎么配置?LOG日志:
信息: org.tuckey.web.filters.urlrewrite.UrlRewriteFilter DEBUG: checking for status path on /search/A%26F.htm
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: processing request for /search/A%26F.htm
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: after utf-8 decoding /search/A&F.htm
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: context stripped
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.UrlRewriter DEBUG: url /search/A&F.htm?type=img&page=1
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: Rule 0 run called with /search/A&F.htm?type=img&page=1
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.RuleBase DEBUG: matched "from"
2010-7-19 17:52:48 org.apache.catalina.core.ApplicationContext log
信息: org.tuckey.web.filters.urlrewrite.Rule DEBUG: needs to be forwarded to /zogsearch.do?query=A&F&type=img&page=1
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite>
<rule>
<note>
- 这是一个通用请求url rewrite
- 将请求forword url加上“.do”的处理器上。
- 例:
- 请求 http://{domain}/user/login 将被forward到 http://{domain}/user/login.do
- 请求 http://{domain}/user/login/ 将被forward到 http://{domain}/user/login.do
- 请求 http://{domain}/user/logout/ 将被forward到 http://{domain}/user/logout.do
</note>
<from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?$</from>
<to type="forward">/$1.do</to>
</rule>
</urlrewrite>
怎样才能将“&”转化成“%2526”
现在问题是这样的,前台我是用js转换成%26的,但是经过urlrewrite又转回&字符了。
&经过编码之后,就是%26。在zogsearch.do?query=A&F&type=img&page=1里,
query=a
F=NULL
...对策就是:
1,一个回避的办法就是避免使用%26:替换成另外一个符号;在zogsearch.do里,再替换回来。
或者
2,在zogsearch.do里,自己解析URL的querystring部分。