2013-07-04 33 views
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] 

,如果我嘗試訪問該htaccess的將返回一個錯誤400 http://www.example.com/test%testhtaccess的錯誤時,400%的URL

test.php的:

echo $_SERVER['QUERY_STRING']; 

結果:

f=error/400.html 

我如何在htaccess中跳過%符號? 是否有其他可能導致相同問題的字符?

+0

看大jdMorgan回答你的問題:http://www.webmasterworld.com/apache/4220265.htm – user4035

+0

OK,然後我就可以使用.htaccess中,XYZ更換%?因此,如果我通過http://www.example.com/test%test獲得請求,它將重定向到http://www.example.com/testXYZtest –

回答

0

要轉義mod_rewrite中的%,可以使用B標誌。它用於轉義非字母數字字符。讓我知道這是否適合你。

例如

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

仍然無法正常工作。相反,我只是得到f =錯誤%2f400%2ehtml –

相關問題