当url中的%时,htaccess错误400

时间:2013-07-04 22:08:03

标签: php mod-rewrite

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (?!^infos/)^(.+?)/?$ /test.php?f=$1 [L,QSA,NC]

如果我尝试访问http://www.example.com/test%test

,此htaccess将返回错误400

test.php的:

echo $_SERVER['QUERY_STRING'];

结果:

f=error/400.html

如何在htaccess中转义%符号? 是否还有其他字符会导致同样的问题?

1 个答案:

答案 0 :(得分:0)

要转义mod_rewrite中的%,您可以使用B标志。它用于转义非字母数字字符。如果这对您有用,请告诉我。

e.g。

RewriteRule (?!^infos/)^(.+?)/?$ /test.php?f=$1 [B,L,QSA,NC]