Различия в параметрах .htaccess

У меня есть следующий .htaccess:

Options FollowSymlinks

RewriteEngine on

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

Тогда у меня есть следующий index.php:

print_r($_GET);

Результат HTTP: // локальный / тест / Directeur + R% 26D test2 = Directeur + R% 26D? является :

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

Почему test и test2 отличаются, пожалуйста? Я хотел бы, чтобы они имели одинаковую ценность.

1

Решение

С 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

Другие решения

Лучшим решением было перестроить переменную $ _GET с помощью $ _SERVER [«REQUEST_URI»].

0

По вопросам рекламы [email protected]