Задать вопрос
@miadiva

Как сделать 301 редирект с Url с get параметрами на url без параметров, но содержащего значения из них?

Помогите, пожалуйста, разобраться с синтаксисом для 301 редиректа

Нужно чтобы url с get параметрами:
https://loc.mysite.com/Orders/Order?id=000001&userid=22222222222


перенаправлял на страницу с url
https://loc.mysite.com/Orders/Order_id_000001_userid_22222222222


Возможно ли такое сделать?
  • Вопрос задан
  • 1805 просмотров
Подписаться 1 Средний Комментировать
Ответ пользователя Виктор Таран К ответам на вопрос (2)
shambler81
@shambler81 Куратор тега htaccess
GET параметр не является частью урла и не попадает в RewriteRule так что работать с ним можно только через %{QUERY_STRING}
RewriteCond - это если, они складываются до RewriteRule
RewriteCond %{QUERY_STRING} (?:^|&)id\=000001(?:$|&)
RewriteCond %{QUERY_STRING} (?:^|&)userid\=22222222222(?:$|&)
RewriteRule ^Orders/Order$ /Orders/Order_id_000001_userid_22222222222? [L,R=301]


Cоответственно для всех вариантов

RewriteCond %{QUERY_STRING} (?:^|&)id\=(.+)(?:$|&)
RewriteCond %{QUERY_STRING} (?:^|&)userid\=(.+)(?:$|&)
RewriteRule ^Orders/Order$ /Orders/Order_id_%1_userid_%2? [L,R=301]


где%1это группа из RewriteCond %2 соответственно
(?: - этот знак анилирует этут группу дабы она не мешала
Ответ написан