【发布时间】:2012-06-12 23:37:03
【问题描述】:
我正在使用 apache / mod_rewrite 重写 URL,但我遇到了加号问题。
使用以下规则..
RewriteRule ^/(.+[^/])/?$ http://localhost:8080/app/home?tag=$1 [P,L]
两者:
http://localhost/1+1 and http://localhost/1%2B2
以
结束uri=http://localhost:8080/app/home, args=tag=1+2
因此,在这两种情况下,应用程序都将加号转换为空格,因此它无法再区分空格和加号。
如果我使用“B”标志,那么在这两种情况下,+ 符号都会转换为 %2B,并且应用程序最终会遇到相同的问题但相反(空格和加号都是加号)
有没有办法让 apache 正确地将 %2B 转义为加号而不是空格?
我读过一些关于 mod_security 的文章,但我没有使用它,所以我不确定是否有其他安全机制导致了这种情况?
任何帮助将不胜感激!
【问题讨论】:
标签: apache mod-rewrite