当url具有%符号时,http找不到问题

时间:2011-07-05 08:24:02

标签: .htaccess mod-rewrite url-rewriting

它显示了很多网址,因为找不到404。当然,网址中存在格式错误的查询字符串。

http://www.example.com/ref=http%3A%2F%2Fwww.example.org/

Bbove网址未能通过.htaccess验证。

RewriteRule ^(.*)$ index.php?request_url=$1 [QSA,L]

如果该网址达到/通过上述.htaccess规则,我只需添加R=301,但该网址未达到/通过该.htaccess规则并显示404错误。

1 个答案:

答案 0 :(得分:0)

它无法正常工作,因为网址已经过编码,并且将分别解析为(%2F代表{和%5C代表\)。 Apache对这些请求有安全限制 查看这些网址以获取更多信息

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0450

http://securitytracker.com/id/1018110 (Look at section 4. Solution)

要使其工作要么通过解码请求,要么在apache配置中启用AllowEncodedSlashes并重新启动apache服务

http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes