我目前在 Apache 服务器上遇到了编码斜杠问题。url 结构如下:
www.site.com/url/http%3A%2F%2Fwww.anotherurl.com
然后我收到来自 Apache 的 404 错误(我的应用程序应该处理所有错误。)
显然这个AllowEncodedSlashes On
指令应该能帮我解决这个问题,但它似乎没有任何作用。我把它放在 httpd.conf 中,如下所示:
<VirtualHost *:80>
DocumentRoot /var/www/vhosts/site.com/httpdocs
ServerName site.com
AllowEncodedSlashes On
</VirtualHost>
然后使用/etc/init.d/httpd restart
命令重新启动 Apache。
我已经尝试解决这个问题好几天了。有些人说 AllowEncodedSlashes 指令有效,有些人说它有缺陷,应该弃用。我想知道 AllowEncodedSlashes 和 clean URL 协同工作是否存在问题?
无论如何,我们非常感谢大家的帮助。提前致谢。
答案1
这似乎是 Apache 中的一个已知错误:https://issues.apache.org/bugzilla/show_bug.cgi?id=35256
答案2
我从来没有尝试过,但是只要阅读 AcceptEncodedSlashes 的 apache 手册,它就会说:
与 PATH_INFO 结合使用时,启用 AllowEncodedSlashes 非常有用。
http://httpd.apache.org/docs/2.0/mod/core.html#acceptpathinfo
您的配置中是否启用了 AcceptPathInfo ?
编辑:刚刚注意到':'是用%3A编码的..也许这就是导致问题的原因。