Подтвердить что ты не робот

.htaccess: переменные GET теряются при перезаписи

По-видимому, мой .htaccess переписывает все $_GET -variables на моей странице:

При доступе к URL http://192.168.1.1/welcome/test?getvar=true и запуску var_dump($_GET) в моем файле index.php, я получаю этот результат:

array
'/welcome/test' => string '' (length=0)

Таким образом, нет $_GET -данных и без знака getvar -variable из моего URL.

Здесь мой .htaccess:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]

Что мне следует изменить, чтобы убедиться, что мой переписывающий файл работает по назначению, но $_GET -переменные все еще доступны?

4b9b3361

Ответ 1

Вам нужна опция "QueryString Append":

RewriteRule ^(.*)$ index.php?route=/$1 [QSA,L]

Изменить: Добавлен вклад @DonSeba, потому что он правильный.

Ответ 2

незначительное изменение детали:

RewriteRule ^(.*)$ index.php?/$1 [L]

to

RewriteRule ^(.*)$ index.php?route=$1 [QSA,L]

теперь все маршруты будут видны в $_GET [ "route" ]

Ответ 3

RewriteRule ^(.*)?(.*)$ index.php?/$1&$2 [L]