Що таке 301 редирект?

301 редирект повідомляє пошуковій системі, що вебсторінка назавжди переміщена на нову адресу.

Що таке htaccess?

Це файл додаткової конфігурації веб-сервера Apache. Він розташовоний в кореневій папці сайту.

Як зробити 301 редирект для Opencart?

Для цього необхідно прописати спеціальне правило у файлі .htaccess. Для вебсервера Apache використовується така конструкція:

RewriteCond %{QUERY_STRING} ^_route_=(Старий url без домена)$
RewriteRule ^(.*)$ (Новий url з доменом та https)? [R=301,L]

Дужки використані для виділення тексту і в реальній конструкції їх вживати не потрібно.

Для прикладу, стара сторінка розміщена за адресою: https://old.site.ua/old-category/old-product

Потрібно налаштувати редирект на нову адресу: https://new.site.ua/new-category/new-product

Отже, прописуємо таку конструкцію:

RewriteCond %{QUERY_STRING} ^_route_=old-category/old-product$
RewriteRule ^(.*)$ https://site.ua/new-category/new-product? [R=301,L]

Редирект для багатомовних сайтів

Уявімо, що вміст сайту доступний також англійською мовою з префіксом /en: https://old.site.ua/en/old-category/old-product

і ми переспрямовуємо на нову адресу: https://new.site.ua/en/new-category/new-product

Запис в htaccess виглядатиме наступним чином:

RewriteCond %{QUERY_STRING} ^_route_=en/old-category/old-product$
RewriteRule ^(.*)$ https://site.ua/en/new-category/new-product? [R=301,L]