2015-01-19 3 views
1

У меня есть следующие .htaccess:Различия в .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) 

Почему тест и тест2 различны, пожалуйста? Я бы хотел, чтобы у них была такая же ценность.

+0

Что вы пытаетесь сделать? – anubhava

+0

Я пытаюсь получить ответ: 'Array ([test] => directeur R & D [test2] => directeur R & D)' – 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

Лучшим решением было восстановление переменной $ _GET с $ _SERVER [ "REQUEST_URI"].