.htaccess mod_rewrite игра с переменными - PullRequest
0 голосов
/ 21 мая 2009

Я хочу, чтобы URL моего сайта выглядели как

http://example.com/place/info?var=info&morevars=ifneeded

Место и информация также являются переменными, но они имеют фиксированное имя, после которого имена могут отличаться. РЕДАКТИРОВАТЬ Это URL, который я пытаюсь переписать

http://example.com/test.php?place=test&action=info&var=info&morevars=ifneeded

Это то, что я имею до сих пор

RewriteEngine on

RewriteRule ^([A-Za-z0-9-]+)/?$ test.php?place=$1 [NC]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ test.php?place=$1&action=$2 [NC]

Я думаю, что есть способ сделать это с {QUERY_STRING}, но я не могу заставить его работать только 500 ошибок, или это не имеет значения.

Ответы [ 2 ]

1 голос
/ 21 мая 2009

Вы установили флаг QSA , который автоматически добавляет исходный запрошенный запрос к новому:

RewriteEngine on
RewriteRule ^([A-Za-z0-9-]+)/?$ test.php?place=$1 [NC,QSA]
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ test.php?place=$1&action=$2 [NC,QSA]
0 голосов
/ 21 мая 2009

Ты пропустил первый /

RewriteEngine on

RewriteRule ^/([A-Za-z0-9-]+)/ test2.php?place=$1 [NC]
RewriteRule ^/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/ test2.php?place=$1&action=$2 [NC]
...