Не удалось получить доступ к переменной php $_GET из-за htaccess

Я использую этот код .htaccess для своего веб-приложения. Он работает нормально, но я не могу получить доступ к переменным $_GET.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)/$ index.php?$1&p=$2&id=$3 [L]
RewriteRule ^(.*)/(.*)/$ index.php?$1&p=$2 [L]
RewriteRule ^(.*)/$ index.php?$1

URL, который я использую прямо сейчас, это http://www.website.com/mainpage/subpage/id/ Но если я делаю что-то вроде этого http://www.website.com/mainpage/subpage/id/?template=new, я не могу получить доступ к переменной $_GET['template'], я уверен, что htaccess вызывает это, но я не знаю, как продвигайтесь вперед.

1 ответ

Вам нужно добавить флаг QSA, чтобы строки запросов добавлялись к концу ваших целей перезаписи:

RewriteRule ^(.*)/(.*)/(.*)/$ index.php?$1&p=$2&id=$3 [L,QSA]
RewriteRule ^(.*)/(.*)/$ index.php?$1&p=$2 [L,QSA]
RewriteRule ^(.*)/$ index.php?$1 [L,QSA]

licensed under cc by-sa 3.0 with attribution.