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

.htaccess переписать все строки запроса через

В настоящее время я использую:

RewriteRule ^([^/\.]+)/?$ page.php?page=$1 [L]

Это полезно для прохождения одной прокрутки.

Но есть ли способ пройти все перекрестки? то есть запрос одной страницы может быть:

domain.com/contact?course=23

а другой может быть:

domain.com/contact?workshop=41

Итак, мне нужно знать, что такое имя строки запроса, но только один из них будет передан за один раз

4b9b3361

Ответ 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']).