使用 “NE”不对URI进行转义

最近使用Apache的RewriteRule对URL进行跳转,突然有用户来报打不开页面。

查原因,发现原URL中有 changeboxid%5B%5D=958365 (changeboxid[]=958365)

结果Rewrite跳转时又转了一次,成了changeboxid%255B%255D=958365。

HOHO

 

使用NE标记解决。

 

RewriteCond %{QUERY_STRING} ^a=preship&.*$
RewriteRule ^(/cms/ticket.php.*)$ http://cms.test.com$1 [NE,L,R=301]

 

'noescape|NE'(在输出中不对URI进行转义)
此标记阻止mod_rewrite对重写结果应用常规的URI转义规则。 一般情况下,特殊字符('%', '$', ';'等)会被转义为等值的十六进制编码('%25', '%24', '%3B'等)。此标记可以阻止这样的转义,以允许百分号等符号出现在输出中,比如:

RewriteRule /foo/(.*) /bar?arg=P1/%3d$1 [R,NE]

 

参考URL:

http://lamp.linux.gov.cn/Apache/ApacheMenu/mod/mod_rewrite.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值