它显示了很多网址,因为找不到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错误。
答案 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