301 Redirect Opencart 2 ЧПУ

Как же сделать правильный 301 редирект страниц с применением внутренних SEO ссылок OpenCart? Можно поискать готовые решения среди модулей Opencart 2, но быстрее это сделать вручную.

Модуль Менеджер 301 редиректов для Opencart 2.x

Если сделать стандартный редирект 301, то при переходе по старой ссылке вы увидите страницу ошибки, а в адресной строке - примерно такое:

http://site.com/new-page.html?_route_=index.php?new-page.html

На днях появилась задача перенести магазин с малоизвестной cms на OpenCart. Но поскольку магазин работал уже давно и его знали поисковики надо было сохранить ссылки на разделы и товары.

К сожаление ссылки имели вид /ru/раздел/123 и при их подстановке в «SEO Keyword» из-за слешей они выдавали, что страницы не найдена.

Поэтому для сохранения «веса» в поисковиках и работы старых ссылок пришлось применять 301 redirect.

Написания 301 редиректа очень просто

Redirect 301 /старая-страница /новая-страница 

И если Вы не используете SEO Keyword (они же ЧПУ ссылки) в магазине, то достаточно в .htaccess прописать:

Redirect 301 /ru/раздел/123 /index.php?route=product/category&path=59

Но если Вы используете ЧПУ ссылки, то тут становиться все немного сложнее.

Предположим, что ЧПУ ссылка раздела теперь будет выглядеть так new-page.html, то при записи

Redirect 301 /ru/раздел/123 /new-page.html вы получите страницу при редиректе типа http://site.com/new-page.html?_route_= index.php?new-page.html, которая выдаст «запрашиваемая страница не найдена».

Для того, что бы этого не происходило в .htaccess надо прописать следующие:

Redirect 301 /ru/раздел/123 /index.php?route=product/category&path=59

RewriteCond %{QUERY_STRING} ^route=product/category&path=59$

RewriteRule ^index\.php /new-page.html? [R=301,L]


Теги: 301 Redirect