.htaccess RewriteRule для сохранения параметров GET URL - PullRequest
29 голосов
/ 01 ноября 2010

У меня проблемы с сохранением параметров URL-адреса после перезаписи htaccess.

Моя перезапись htaccess выглядит следующим образом:

 RewriteEngine on
 RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2

Что означает:

domain.com/index.php?lang=en&page=product отображается как domain.com/en/product

По какой-то причине, когда я добавляю ?model=AB123&color=something в конце своих URL, я не могу получить эти параметры в php, используя $_GET['model'] и $_GET['color'], даже если они присутствуют в отображаемом URL.

Почему переменные не передаются?

1 Ответ

67 голосов
/ 01 ноября 2010

Необходимо добавить с помощью тега [QSA] (строка запроса). Попробуйте

RewriteEngine on
RewriteRule ^([a-z]{2,2})/([a-zA-Z0-9_-]+)$ index.php?lang=$1&page=$2 [QSA]

См. http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

...