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将返回错误400test.php的:
echo $_SERVER['QUERY_STRING'];
结果:
f=error/400.html
如何在htaccess中转义%符号? 是否还有其他字符会导致同样的问题?
答案 0 :(得分:0)
要转义mod_rewrite中的%,您可以使用B
标志。它用于转义非字母数字字符。如果这对您有用,请告诉我。
e.g。
RewriteRule (?!^infos/)^(.+?)/?$ /test.php?f=$1 [B,L,QSA,NC]