.htaccess переписать все строки запроса через
В настоящее время я использую:
RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L]
Это полезно для прохождения одной прокрутки.
Но есть ли способ пройти все перекрестки? то есть запрос одной страницы может быть:
domain.com/contact?course=23
а другой может быть:
domain.com/contact?workshop=41
Итак, мне нужно знать, что такое имя строки запроса, но только один из них будет передан за один раз
Ответы
Ответ 1
Если я правильно понял ваш вопрос, вы можете просто добавить флаг [QSA]
(добавить строку запроса) в конец вашего RewriteRule
RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L,QSA]
Это обработает ваш запрос, как вы уже сделали, и добавьте дополнительные параметры запроса.
Ответ 2
Это то, что я делаю.
RewriteRule ^((/?[^/]+)+/?)$ ?q=$1 [L]
Теперь вся часть после domain.com/находится в $_GET['q']
в index.php
. Например. если вы запросите domain.com/articles/12
, q
содержит articles/12
. Затем он тривиально разбирает его, например. explode('/', $_GET['q'])
.