2015-01-19 3 views
1

I가 다음의 .htaccess : 다음차이 파라미터

Options FollowSymlinks 

RewriteEngine on 

RewriteRule ^test/(.*)$ index.php?test=$1 [B,NE,QSA] 

난 다음 index.php를 가지고

print_r($_GET); 

http://localhost/test/directeur+R%26D?test2=directeur+R%26D의 결과이다

Array ([test] => directeur+R&D [test2] => directeur R&D) 

왜 test2와 test2가 다른가요? 나는 그들에게 같은 가치관을 가지기를 바란다.

+0

무엇을하려고합니까? – anubhava

+0

응답을 보내려고합니다 : 'Array ([test] => 지시자 연구 [test2] => 지시자 연구 개발)' – pcmanprogrammeur

답변

0

B 플래그가있는 경우 +은 URI의 공백으로 변환되지 않습니다. +을 먼저 공백으로 변환하려면 추가 규칙이 필요합니다.

RewriteEngine On 
RewriteBase/

# convert + to space in URI 
RewriteRule ^([^+]+)\+(.*)$ "$1 $2" [L] 

# now your original rule 
RewriteRule ^test/(.*)$ index.php?test=$1 [B,L,QSA] 

이제 테스트 URL은 당신이 $_GET 배열을 줄 것이다 :

Array 
(
    [test] => directeur R&D 
    [test2] => directeur R&D 
) 
+0

매우 감사드립니다. – pcmanprogrammeur

+0

다행스럽게도 내 대답의 왼쪽 상단에있는 눈금을 클릭하여 대답을 표시 할 수 있습니다. – anubhava

0

가장 좋은 방법은 $ _SERVER [ "REQUEST_URI"]와 $ _GET 변수를 재 구축하는 것이 었습니다.