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

URL에 % http://www.example.com/test%testhtaccess로 오류 400 때 액세스하려고하면이 htaccess로 오류 400를 반환합니다

test.php :

echo $_SERVER['QUERY_STRING']; 

결과 :

f=error/400.html 

어떻게 htaccess에서 % 기호를 벗어날 수 있습니까? 같은 문제가 발생할 수있는 다른 문자가 있습니까?

+0

봐 : http://www.webmasterworld.com/apache/4220265.htm – user4035

+0

확인 후 내가 XYZ에 의해 %를 대체 할 htaccess로 사용할 수 있습니까? 따라서 http://www.example.com/test%test로 요청을 받으면 http://www.example.com/testXYZtest로 리디렉션됩니다. –

답변

0

mod_rewrite에서 %를 이스케이프하려면 B 플래그를 사용할 수 있습니다. 영숫자가 아닌 문자를 이스케이프하는 데 사용됩니다. 그게 당신에게 효과가 있는지 알려주세요.

귀하의 질문에 큰 jdMorgan 응답에서

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

아직 작동하지 않습니다. 대신 나는 f = error % 2f400 % 2ehtml을 얻는다. –