Проблема с 301 редиректом в htaccess

  • 377
  • 12 января 2021

Не так давно пришлось столкнуться с задачей настройки 301 редиректа с одного домена на другой.

Обычное правило не сработало. 301 редирект выполнялся, только при переходе на новый домен, к концу ссылки добавлялся знак вопроса «?», после чего шел кусок ссылки со старого домена.

Исходный код:
RewriteCond %{HTTP_HOST} /ru/equipment/other_equipment/Dix-AutoGramm [NC]
RewriteRule ^(.*)$ https://sitenew.ua/product/dix-autogrommets.html/$1 [R=301,L]
Результат:
https://site-new.ua/product/dix-autogrommets.html?ru/equipment/other_equipment/Dix-AutoGramm
В итоге сработало такое правило:
RewriteRule ^(.*)ru/equipment/other_equipment/Dix-AutoGramm$ https://sitenew.ua/product/dix-autogrommets.html [R=301,L]
Расшифровка кода:

^ – анкор, означет начало строки;

(.*) – это регулярное выражение модуля mod_rewrite apache означающее любую последовательность символов;

$ – Этот символ обозначает конец строки;

[R=301,L] – флаги;

R – редирект;

301 – код редиректа который необходимо получить;

 L – дает команду остановить выполнение правил в этом цикле.

Получите максимум от вашего сайта

Заказать проект

Введите корректный телефон