Блог Сергея Арсентьева

Создание и продвижение сайтов с нуля.
Только реальные способы заработка в сети.
Проверено на личном опыте.

Правильный редирект в магазине Опенкарт (Opencart / OcStore 2.х)

Обычный редирект в магазинах на Opencart CMS не срабатывает и выдает ошибку Internal Server Error (500). Решается эта задача с помощью другого синтаксиса Redirect 301.Все началось с того, что меня один клиент по продвижению попросил сделать редирект в его магазине Opencart 2.1.

Изменились ссылки на статьи, о магазине, товары и категории.

А я согласился, совсем забыв, что в магазинах Opencart эти редиректы делаются через одно место, стандартный синтаксис с Redirect 301 не работает!

В итоге вместо нескольких минут задача заняла у меня целый день, включая поиск в интернете правильного решения, тестирования и создание своего файлика XLS, чтобы больше вручную не делать все эти редиректы в Опернкарте.

Делюсь найденным решением с вами.

Прописываем правильный редирект в Opencart вручную

Итак, открываем файл .htaccess, он находится в корне сайта, для этого понадобится доступ по FTP (может пригодится как зайти по FTP на сайт).

И где-нибудь в начале файл после директивы RewriteEngine On вставляем редиректы.

Прежде всего, еще раз напомню, что стандартный редирект вида:

Redirect 301 старый адрес http://новый адрес

банально не работает и выдает ошибку.

Чтобы победить его в .htaccess нужно прописать другую конструкцию:

RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$
RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]

Проверил в разных вариантах - все работает отлично.
Спасибо за решение неизвестному автору.

Автоматизировать редирект Opencart

Мне пришло в голову, что млин, каждый раз вручную вставлять правильные адреса в эти 2 строчки довольно утомительно.

И поэтому если у вас есть список старых URL-адресов и новых, то задача сделать из них редирект - вопрос нескольких формул в Excel.

Вот что получилось:

В результате можно сразу загнать в файл весь список старых адресов и напротив них - новые, и получить готовый редирект для Opencart и Ocstore.

Качайте файл с моего сервера.

Скачать бесплатно

Прямо сейчас вы можете скачать нужный файл с моего сервера - это просто и бесплатно. Достаточно кликнуть на любой значок соцсети, в которой вы, разумеется, имеете аккаунт и оставить сообщение в выбранной соцсети, после чего вам откроется скрытое содержимое.

Если после клика на социальный замок не показывается содержимое (такое бывает иногда в зависимости от браузера), то есть такие варианты:

  • Попробуйте другую соцсеть или зайти из другого браузера
  • Оставьте страницу подождать какое-то время (в новой полной версии соцзамка есть таймер обратного отсчета, он в углу показывает оставшееся время до самооткрытия).
  • Заходите в спецархив - я тут выкладываю ссылки на все файлы (https://moytop.com/about-archive-moytop)

Массовый редирект на новый домен

Ну и в заключении приведу простой код для массового редиректа всех страниц в магазине при переезде на новый домен или как в данном случае - когда хочется чтобы сайт был доступен с разных доменов, например, GrillKraft.ru и GrillCraft.ru.

Конечно, лучше сразу правильно подбирать домен для магазина, но если у вас уже есть необходимость в нескольких именах, то с помощью 301 редиректа вы добьетесь того, что со всех дублей будет загружаться только основной домен сайта.

RewriteEngine On
RewriteBase /
#RewriteCond %{HTTP_HOST} ^(www\.)?xn--80afpie2adrr0f\.xn--p1ai$ [NC,OR] RewriteCond %{HTTP_HOST} ^(www\.)?grillcraft\.ru$ [NC] RewriteRule ^(.*)$ http://grillkraft.ru/$1 [R=301,L]

Там где # - это строка значит закомментирована.
Она здесь, чтобы показать как делать редирект с кириллистического домена магазина.

Добавляйте эту конструкцию в .htaccess файл старого сайта и у вас будет происходить 301 редирект в вашем магазине со всех страниц старого домена на новый.

Автор блога
“Измени свои привычки, и изменится твоя жизнь..”
Специалист по созданию и продвижению сайтов (SEO и реклама), фрилансер с многолетним опытом.
Статистика блога
  • Всего материалов на сайте: 184
  • Активных комментариев: 2 603
  • Работает онлайн: 5.3 лет
  • Читателей за это время: 1 444 488

Было интересно - жми на звезды:



Комментарии на блоге
Комментариев | (15)
  • Дмитрий

    Спасибо Вам огромное! Два дня лапатил этот 301 и тут всё получилось!

    Комментировать
  • Денис

    Спасибо! Метод помог настроить редиректы, долго мучался. :yes:

    Комментировать
  • Кирилл

    Отлично! То что надо... Спасибо огромное!

    Комментировать
  • Евгений

    Спасибо! Возникла такая ситуация, что 301 редирект с одной страницы сделал. Затем хотел сделать еще один, вставил строки в файл и появилась ошибка, которая не позволяет зайти на сайт. Почему так можете подсказать?

    Комментировать
    • Сергей Арсентьев

      где-то проблема в синтаксисе.
      что-то не так скопировалось или вставилось, или не туда, или что-то заменили.
      в htaccess важна каждая мелочь.
      попробуйте еще раз внимательно вернуть назад и внести новый редирект.

      Комментировать
  • Ярослав
    Ярослав

    А мне помогло вот так:

    RewriteCond %{QUERY_STRING} ^route=information/contact$
    RewriteRule ^(.*)$ contacts? [R=301,NC,L]

    Комментировать
  • Богдан
    Богдан

    Спасибо помогло, но не могу средиректить страницы типа "/index.php?route=product/category&path=33"

    Что можно с этим сделать?

    Комментировать
    • Сергей Арсентьев

      я бы вот так попробовал:

      ====================

      RewriteCond %{QUERY_STRING} category&path=33$
      RewriteRule ^(.*)$ https://moytop.com/? [R=301,L]

      ====================

      только свой адрес вместо moytop.com не забудьте.
      у меня на магазине такая связка работает, проверил сейчас.
      если и у вас получится, то хорошо.

      естественно, редиректы должны стоять после:
      RewriteBase /

      но перед системными редиректами, которые там идут стандартно в любом Опенкарте.

      Комментировать
      • Богдан
        Богдан

        Все работает, еще раз спасибо !

        Комментировать
      • Валентин
        Валентин

        Огромное спасибо! Мне это помогло!

        Комментировать
  • Сергей
    Сергей

    А можете подсказать, как прописать редирект чтобы перправляло с http://www.goldentimenn.ru/man/ на https://lux33.ru/mens/.
    Все конструкции перепробовал - ни одна корректно не работает.

    Комментировать
    • Сергей Арсентьев

      Если так не работает:
      RewriteCond %{QUERY_STRING} ^_route_=man/$
      RewriteRule ^(.*)$ https://lux33.ru/mens/? [R=301,L]
      то не подскажу... Может кто из читателей сталкивался.

      Комментировать
  • Александр

    А если у тебя 10 000 позиций со старого сайта, где изменились url ? Мы апачь не повесим таким способом ?

    Комментировать
    • Сергей Арсентьев

      Я бы не стал 10000 позиций вручную менять через список 301 редиректов.
      Обычно ведь редирект - это смена каких-то общих родительских URL, а не всех URL товаров, например:

      Было: https://site.com/category1/statya.html
      Стало: https://newsite.ru/category8901/statya.html

      То есть URL конкретных конечных страниц редко меняются.
      В этом случае имеет смысл заказать написание или скрипта редиректов или формулы для редиректа с учетом специфики изменений.
      На биржах фриланса можно найти профессионалов по администрированию серверов, они напишут относительно недорого.

      Если же у вас поменялись все URL, например:
      Было: https://site.com/category1/statya.html
      Стало: https://newsite.ru/category8901/novye-statii.html

      И таких страниц очень много, то IMHO проще забить на это в принципе.
      Сделать редирект только основных категорий и всё.
      Поисковик через пару недель сам определит новые URL, в поиске обычно они не проседают, так как это низкочастотники.

      Комментировать
      • Александр

        Да, но у меня разбивается на 2 сайта, поэтому приходится делать карту редиректов.
        Я сделал по другому.
        Старые адреса и новые записал в базу данных по соответвию.
        Оттуда запросом забирал и перенаправлял php редиректом. Пришлось поменять немного контроллер.

        Комментировать
Добавить свой комментарий
Подробнее в Установки и настройки, Установки и настройки
Google опять пугает владельцев сайта: на этот раз SSL

Уже не в первый раз мировой гигант Google баламутит спокойствие в IT-сообществе. На этот раз он обещает придушить те сайты,...

Бесплатный SSL сертификат для сайта

Бесплатный сертификат SSL для своего сайта вполне реально можно получить, немного порыскав по интернету в поисках халявы.

Закрыть