0
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

测试.php:

echo $_SERVER['QUERY_STRING'];

结果:

f=error/400.html

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

4

1 回答 1

0

要转义 mod_rewrite 中的 % ,您可以使用该B标志。它用于转义非字母数字字符。让我知道这是否适合你。

例如

RewriteRule (?!^infos/)^(.+?)/?$ /test.php?f=$1 [B,L,QSA,NC]
于 2013-07-04T22:17:04.633 回答