我目前在Apache服务器上遇到编码斜杠问题。网址结构如下:
www.site.com/url/http%3A%2F%2Fwww.anotherurl.com/format/xml
然后我从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是否存在问题并且清理URL是否一起工作?
无论如何,所有的帮助表示赞赏。提前谢谢。
答案 0 :(得分:0)
似乎是Apache的一个错误:https://issues.apache.org/bugzilla/show_bug.cgi?id=35256
答案 1 :(得分:0)
您可以使用编码和解码URL来解决这种类型的问题。
var uri = "https://w3schools.com/http%3A%2F%2Fwww.anotherurl.com/format/xml";
var uri_enc = encodeURIComponent(uri);
var uri_dec = decodeURIComponent(uri_enc);
After encode-
Encoded URI: https%3A%2F%2Fw3schools.com%2Fhttp%253A%252F%252Fwww.anotherurl.com%2Fformat%2Fxml
After Decode-
Decoded URI: https://w3schools.com/http%3A%2F%2Fwww.anotherurl.com/format/xml