我使用.htaccess将带有特殊字符的网址重定向到400错误页面,这样工作正常。
我正在以这种方式重定向。
RewriteCond %{QUERY_STRING} [^\w+=&/.()-] [OR]
RewriteCond %{REQUEST_URI} [^\w+=&/.()-]
RewriteRule .? /site/error/400/? [L,B,R]
我也希望在查询中允许空格,我正在尝试这种方式,但它不起作用。
RewriteCond %{QUERY_STRING} [^\w\s+=&/.()-] [OR]
RewriteCond %{QUERY_STRING} [^\w+=&/.()-\s] [OR]
RewriteCond %{QUERY_STRING} [^\w+=&/.()\s-] [OR]
RewriteCond %{QUERY_STRING} [^\w\d\s+=&/.()-] [OR]
请参阅并建议任何可行的方法。
感谢。
答案 0 :(得分:2)
您可以使用%20
空格:
RewriteCond %{QUERY_STRING} [^\w=+&/.%20()-] [OR]
RewriteCond %{REQUEST_URI} [^\w+=&/.()-]
RewriteRule ^ /site/error/400/? [L,B,R]
答案 1 :(得分:0)
试试这个
RewriteCond %{QUERY_STRING} [^\w\s+=&/.() -]