当请求包含百分号符号的URL时,是否有一种简单的方法可以防止服务器返回错误400(错误请求)?
许多主要网站都存在同样的问题,例如:http://twitter.com/%或http://bing.com/%
但其他网站已修复此问题并返回自定义错误页面,而不是标准服务器响应,例如:http://facebook.com/%或http://google.com/%
是否有一种简单的单一方法来逃避单个字符%符号返回400错误,而是在Apache中使用mod_rewrite或类似的自定义错误文档返回404错误?
答案 0 :(得分:2)
是否有一种简单的单一方法来逃避单个字符%符号返回400错误
是的,如果不希望它们具有特殊含义,则必须对您放入网址的任何字符进行urlencode。
例如在PHP中:
$string = urlencode('%');
仅供参考%
编码为%25
:https://twitter.com/%25
答案 1 :(得分:0)
我通过制作两件事来解决这个问题。使用apache配置我将此错误指向我的400.shtml文档。第二件事是在我的.htaccess文件中:
RewriteEngine On
RewriteRule 400.shtml 404.shtml [L]
您可以使用这两个并使用您的服务器端脚本来处理此错误,而不仅仅是404.shtml。
干杯。