Я пытаюсь переписать URL из:Как сохранить существующую строку запроса в правило mod_rewrite
http://domain.com/aa/whatever/whatever.php
в
http://domain.com/whatever/whatever.php?language=aa
Однако, в зависимости от существующих $ _GET переменных, это либо должно быть? язык или & язык.
Чтобы сделать это, я использую 2 регулярные выражения с [L] флагом:
RewriteRule ^([a-z]{2})/(.*\.php\?.*) /$2&language=$1 [L]
RewriteRule ^([a-z]{2})/(.*) /$2?language=$1 [L]
Второй работает, как ожидался ... Первое, однако, никогда не ударили (она падает до второго регулярного выражения , который ударил), хотя Regex Coach действительно показывает мне, что он должен.
редактировать:
Если только что прочитал, что мне нужно использовать два обратных слэша, чтобы избежать знак вопроса. Если я это сделаю, он попадает в первое регулярное выражение, но никогда не найдет другие переменные GET.
Нашел его, прежде чем я прочитал ответ, но тем не менее это правильный ответ. –
Спасибо, что приняли ответ, хотя вам удалось найти его сами. – mikej