.htaccess RewriteRule для работы со скрытыми и видимыми GET - PullRequest
4 голосов
/ 25 февраля 2012

Вот что я уже сделал.

RewriteRule ^([a-z]+)$ index.php?file=$1

Так что при посещении domain.com/browse он фактически читает domain.com/index.php?file=browse

Но проблема в том, что он не пропускает видимые переменные GETкак это: domain.com/browse?page=2.Как мне сделать, чтобы передать обе переменные GET: domain.com/index.php?file=browse&page=2.

Любая помощь будет оценена!

Ответы [ 2 ]

10 голосов
/ 25 февраля 2012

Вы можете использовать это:

RewriteRule ^browse/?$ index.php?file=browse&page=1 [L,NC,QSA]
RewriteRule ^browse/([0-9]+)/?$ index.php?file=browse&page=$1 [L,NC,QSA]

#else it's for files
RewriteRule ^([a-z]+)/?$ index.php?file=$1 [L,NC,QSA]

или используйте:

RewriteRule ^([a-z]+)$ php.php?file=$1 [L,NC,QSA]

флаг QSA (Query String Appending) позволит передавать _GET переменные

7 голосов
/ 25 февраля 2012

Вы должны явно добавить строку запроса при переписывании:

RewriteRule ^([a-z]+)$ index.php?file=$1&%{QUERY_STRING}
...