.htaccess переписать передать все строки запроса через - PullRequest
15 голосов
/ 18 мая 2011

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

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

Что хорошо при пропуске одной строки запроса.

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

domain.com/contact?course=23

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

domain.com/contact?workshop=41

Поэтому мне нужно знать, как называется строка запроса, но только один из них будет переданза один раз

Ответы [ 2 ]

38 голосов
/ 18 мая 2011

Если я правильно понимаю ваш вопрос, вы можете просто добавить [QSA] (добавление строки запроса) в конец вашего RewriteRule

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

Это обработает ваш запрос, как вы уже сделали, и добавит все дальнейшие параметры строки запроса в конец.

1 голос
/ 18 мая 2011

Это то, что я делаю.

RewriteRule ^((/?[^/]+)+/?)$ ?q=$1 [L]

Теперь вся часть после domain.com/ находится в $_GET['q'] в index.php. Например. если вы запрашиваете domain.com/articles/12, q содержит articles/12. Затем это тривиально, например, explode('/', $_GET['q']).

...