kotcich
@kotcich
Я скучный.

Как сделать редирект, если в исходном URI есть GET параметр(то есть знак вопроса)?

Вот собственно сам редирект.

RewriteRule ^\?p=(\d+)$ index\.php/$1 [NC,L,R]

Если писать знак вопроса во втором параметре реврайта, то с этим проблем нет, ошибок не выдает и GET параметр передается, например

RewriteRule ^(\d+)$ index\.php/\?p=$1 [NC,L,R] (так все работает, а мне нужно наоборот)
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
@dodo512
Как на самом деле работает mod_rewrite.
В RewriteRule передаётся только путь до запрошенного файла, а GET параметры следует искать в %{QUERY_STRING}.
RewriteCond %{QUERY_STRING} (?:^|&)p=(\d+)(?:$|&)
RewriteRule ^ /index.php/%1? [L,R]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы