apache2.2.9 rewrite.log 乱码

大虾们好。
我配置了 apache2.2.9 + tomcat5.0 加上了 rewrite 的功能。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog logs/rewrite.log
RewriteLogLevel 9
#配置商家详细信息页面的静态链接
RewriteRule ^(.*)/search/loadCom-([0-9]+)\.html$ $1/search/loadCom.942map?code=$2 [P,L]
RewriteRule ^(.*)/search/query-([\w\-]+)\.html$ $1/search/query.942map?searchWord=$2 [NE,R]
</IfModule>

配置后,对于第一个请求正常:
http://127.0.0.1:8089/search/loadCom-1.html
rewrite.log 里的转向正常: http://127.0.0.1:8089/search/loadCom.942map?code=1

对于第二个请求:
http://127.0.01:8089/search/query-%E5%B7%9D%E8%8F%9C.html
rewrite.log 里直接将 ”%E5%B7%9D%E8%8F%9C“ 这个到apache rewrite 时自动 encode为中文,而且是乱码。以下是日志

- [25/Nov/2008:20:53:12 +0800] [10.16.79.149/sid#695148][rid#74acd8/initial] (2) init rewrite engine with requested uri /search/query-宸濊彍.html
- [25/Nov/2008:20:53:12 +0800] [10.16.79.149/sid#695148][rid#74acd8/initial] (3) applying pattern '^(.*)/search/loadCom-([0-9]+)\.html$' to uri '/search/query-宸濊彍.html'
- [25/Nov/2008:20:53:12 +0800] [10.16.79.149/sid#695148][rid#74acd8/initial] (3) applying pattern '^(.*)/search/query-([\w\-]+)\.html$' to uri '/search/query-宸濊彍.html'
- [25/Nov/2008:20:53:12 +0800] [10.16.79.149/sid#695148][rid#74acd8/initial] (1) pass through /search/query-宸濊彍.html

资料:
apache有一个功能强大的rewrite模块,这里不描述其功能。需要说明的是该模块会自动将URL解码(去除%),即完成上述web server(tomcat)的部分功能。有相关文档介绍说可以使用[NE]参数来关闭该功能,但我试验并未成功

在查了资料后说是加上: NE 标示,但加上该标示后并未关闭该解码功能。
请问了解改问题的哥哥们怎么解决。
也查过很多,已经有人解决过这个问题:
例如:http://xiaoqu.goojia.com/search/--%E9%97%B5%E8%A1%8C%E5%8C%BA-%E5%8F%A4%E7%BE%8E%E7%BD%97%E9%98%B3%E6%9D%BF%E5%9D%97-----2-0------------price.html
这个就是成功的例子。请大家帮忙看看。谢谢!

问题已经解决。 今天上午在反复测试和修改的过程发现,是rewriterule中写错了。[\w\-] 这个规则并不能匹配 "%E5%B7%9D%E8%8F%9C" 这个格式的编码,所以不能跳转。 至于乱码问题,对跳转没有影响。虽然rewrite.log 里记载了乱码,修改了规则后 (.+) 满足条件,仍然能够完成内部跳转功能。 谢谢。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值