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