允许.htaccess url重定向中的空格

时间:2014-04-14 12:43:49

标签: regex apache .htaccess mod-rewrite redirect

我使用.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]

请参阅并建议任何可行的方法。

感谢。

2 个答案:

答案 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+=&/.() -]