Apache AllowEncodedSlashes 问题

Apache AllowEncodedSlashes 问题

我目前在 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编码的..也许这就是导致问题的原因。

相关内容