主页 > PHP > apache 链接包含”%2F”导致mod_rewrite失效的解决方法

apache 链接包含”%2F”导致mod_rewrite失效的解决方法

2013 年 12 月 29 日 没有评论

最近碰到url中带有%2f导致url重写出错 apache 报404错误的情况,找了很多资料才发现,这个问题是由apache引起。原来 Apache 有一个配置项”AllowEncodedSlashes“, 默认是”Off”, 也就是不允许请求路径(上例是 /tag/Unix%2FLinux)中包含编码后的斜杠’/’(在某些平台是反斜杠’\’).
apache在最近的版本中会在url重写模块启用之前把%2f转化为/,所以url导致了重写后跳转到错误的不存在的页面上。

下面是我使用这个参数的配置文件(httpd-vhosts.conf)里面的内容:


ServerAdmin fbbin@foxmail.com
DocumentRoot “/usr/local/apache/www/”
AllowEncodedSlashes NoDecode
ServerName www.test.com
ServerAlias www.test.com
ErrorLog “test-error_log”
CustomLog “test-access_log” common

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>