Услуги Создание магазина Доработка Интеграция 1С О компании FAQ Блог Кейсы Отзывы Контакты
А
Автор статьи

301 редирект в OpenCart через .htaccess: примеры и проверка

редирект в OpenCart через .htaccess — это способ навсегда перенаправить старый URL на новый. Он нужен при смене адресов товаров и категорий, переходе на HTTPS, склейке домена с www и без, а также после изменения структуры каталога. Правила размещаются в корневом файле .htaccess до стандартных правил SEO URL OpenCart, чтобы срабатывали раньше маршрутизации CMS.

Из практики: реклама для магазина на OpenCart имеет свою специфику. Рассказываю, что работает в 2026.

При работе с редиректами в OpenCart важно помнить: OpenCart хорошо подходит для SEO-переездов — у владельца есть полный доступ к файлам, URL-структуре, config.php, модификаторам и логам. Поэтому редиректы настраиваются прозрачно, без ограничений закрытых конструкторов. Но за 17 лет работы с OpenCart я встречал десятки проектов, где неправильно настроенные редиректы приводили к потерям трафика — и в большинстве случаев причина была в одной и той же ошибке.

Когда нужен редирект в OpenCart

СитуацияЧто редиректитьЗачем это нужно
Изменилась ссылка товара или категорииСтарый URL на новый URLСохранить позиции, трафик и внешние ссылки
Переход на HTTPShttp:// на https://Убрать небезопасную версию сайта
Склейка доменаwww на без www или наоборотНе плодить дубли страниц
Переезд на новую структуру каталогаСтарые разделы на актуальные посадочныеСохранить SEO при переработке магазина
Удален товарСтарый товар на категорию, аналог или заменуНе отдавать пользователю и поиску тупиковую страницу

Где размещать правила редиректа в .htaccess OpenCart

В типовом .htaccess OpenCart строка RewriteEngine On уже есть. Новые правила редиректа лучше ставить после неё, но до стандартного блока, который направляет SEO URL в index.php. Так редирект сработает раньше маршрутизации OpenCart и не будет мешать ЧПУ.

RewriteEngine On# Далее идут стандартные правила OpenCart для SEO URLRewriteBase /RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]RewriteRule ^system/storage/(.*) index.php?route=error/not_found [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_URI} !.*.(ico|gif|jpg|jpeg|png|js|css)RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Если в вашем файле строка RewriteEngine On уже есть — копируйте примеры кода без неё и вставляйте после неё в вашем файле. Добавлять эту строку повторно не нужно.

Готовые примеры редиректов для OpenCart

Редирект старой страницы на новую

RewriteRule ^old-page-url/?$ /new-page-url/ [L,R=301]

Этот вариант подходит для одиночных страниц. Важно: в OpenCart лучше использовать RewriteRule вместо Redirect 301, потому что Redirect работает с полными путями и может конфликтовать со стандартной маршрутизацией CMS. Если редиректов много, ведите отдельную карту соответствий старых и новых URL, чтобы не получить цепочки и противоречивые правила.

Редирект с www на без www

RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Замените example.com на ваш домен. Это правило направляет все запросы с www на основную версию без www по HTTPS.

Редирект с HTTP на HTTPS

RewriteCond %{HTTPS} offRewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Если одновременно склеиваете HTTP/HTTPS и www/без www, проверьте, чтобы итоговый путь был один: например, все варианты должны вести на https://example.com/, а не проходить через несколько промежуточных адресов.

Редирект удалённого товара

RewriteRule ^old-product/?$ /category/similar-product/ [L,R=301]

Для удалённых товаров лучше вести на релевантную категорию, близкий аналог или подборку замен — а не на главную страницу. Редирект на главную часто выглядит нерелевантно и может хуже обрабатываться поисковыми системами.

Критически важно: config.php и домен

При редиректе с www на без www или смене протокола необходимо обновить домен в файлах config.php и admin/config.php. Домен в конфигах должен совпадать с основной версией сайта.

Если в конфиге указан http://www.example.com/, а в .htaccess вы редиректите на https://example.com/, могут появиться лишние переходы, проблемы с админкой, cookie, изображениями и смешанным контентом. По практике, эта проблема встречается в 3 из 10 проектов, где владелец меняет домен или протокол без синхронизации конфигов.

// HTTPdefine('HTTP_SERVER', 'http://example.com/');define('HTTP_CATALOG', 'http://example.com/');// HTTPSdefine('HTTPS_SERVER', 'https://example.com/');define('HTTPS_CATALOG', 'https://example.com/');

Если сайт использует SSL-сертификат и работает по HTTPS, адреса должны начинаться с https://, а не с http://.

Как проверить редирект

  • Откройте старый URL в браузере и убедитесь, что он сразу ведёт на нужную страницу.
  • Проверьте код ответа через curl -I: старый URL должен отдавать 301, итоговая страница — 200.
  • Убедитесь, что нет цепочки из нескольких редиректов: HTTP → HTTPS → www → без www → новая страница.
  • Проверьте корзину, оформление заказа, личный кабинет и админку OpenCart после изменения домена или протокола.
  • После массовых редиректов обновите sitemap и проверьте ошибки обхода в Яндекс.Вебмастере и Google Search Console.

Частые ошибки при редиректах в OpenCart

  • Правила добавлены ниже стандартной маршрутизации OpenCart и не срабатывают.
  • В config.php остался старый домен или протокол.
  • Используется временный редирект 302 вместо постоянного 301.
  • Создана петля редиректов из-за конфликтующих правил www/без www или HTTP/HTTPS.
  • Старые товары редиректят на главную, хотя лучше вести на релевантную категорию, аналог или замену.

FAQ: редиректы в OpenCart

Где находится .htaccess в OpenCart?

Файл .htaccess находится в корневой папке сайта OpenCart. Обычно рядом с ним лежат index.php, config.php, папки catalog, admin и system. Если файла нет, проверьте, не скрывает ли его файловый менеджер — по умолчанию many panels скрывают файлы, начинающиеся с точки.

Куда вставлять редирект в .htaccess OpenCart?

Правило ставят после RewriteEngine On и до стандартных правил SEO URL OpenCart. Так редирект срабатывает до передачи запроса в index.php и не конфликтует с маршрутизацией ЧПУ.

Что лучше: редирект через .htaccess или модуль OpenCart?

Для домена, HTTPS и базовых технических редиректов лучше использовать .htaccess — это быстрее и надёжнее. Для большого списка товарных и категорийных редиректов удобнее модуль или отдельная таблица соответствий, чтобы не перегружать файл правилами. При 100+ правилах .htaccess может начать замедлять работу сервера.

Можно ли удалённый товар редиректить на главную страницу?

Лучше не делать так массово. Для SEO и пользователя полезнее вести старый товар на близкий аналог, категорию или подборку замен. Редирект на главную часто выглядит нерелевантно и может хуже обрабатываться поисковыми системами. Я в своей практике рекомендую всегда искать максимально релевантную замену.

Как проверить, что редирект работает правильно?

Используйте команду curl -I старый-url — она покажет HTTP-код ответа. Должен быть 301 Moved Permanently. Также проверьте через браузерную панель разработчика вкладку Network: статус 301, затем 200 на целевой странице. Важно убедиться, что нет цепочки редиректов — каждый переход добавляет задержку для пользователя и поискового робота.


Если настройка редиректов кажется сложной или вы столкнулись с проблемами — наша техническая поддержка поможет настроить всё правильно и проверить результат.

Читайте также

Как настроить HTTPS для OpenCart и избежать смешанного контента

Canonical в OpenCart: как настроить правильно

Дубли страниц в OpenCart: откуда берутся и как их убрать

SEO-настройка OpenCart: базовый чек-лист

Что проверить перед запуском интернет-магазина на OpenCart

Из практики. При настройке 301-редиректов в OpenCart типичная ошибка — забывают включить mod_rewrite в настройках и прописать правила в .htaccess. На одном проекте клиент настроил SEO URL, но страницы товаров открывались с 404 — оказалось, опция «Use SEO URLs» в админке не была включена. После включения и создания .htaccess с RewriteRule всё заработало.

Как не надо. Не используйте meta-редиректы (обновление через ) вместо 301 — они не передают вес ссылки и плохо индексируются. Всегда используйте серверные 301 редиректы через .htaccess (Apache) или конфигурацию Nginx. И обязательно проверяйте цепочки редиректов — они не должны содержать циклов и промежуточных 302.

Рекомендации из практики

Как лучше: После настройки 301 редиректа проверьте его через httpstatus.io — редирект должен быть 301 (постоянный). Если показывает 302 или 200 — настройка неверна. По практике, неправильный тип редиректа — частая причина потери трафика после изменения структуры сайта.

Как не делать: Не делайте цепочек редиректов A→B→C. Каждый редирект теряет часть веса ссылки. Максимум 1 редирект между старым и новым URL.

Кейс из практики: После переноса каталога настроили цепочку из 2 редиректов. Через месяц заметили падение трафика — Яндекс передавал только часть веса. Объединили в один прямой редирект — трафик восстановился.

Нужна помощь — закажите технический аудит: проверим и настроим.

← Предыдущая Микроразметка для сайта: подробное описание Следующая → Nginx для SEO URL в OpenCart: настройка ЧПУ и try_files

Комментарии (0)

Пока нет комментариев. Будьте первым!

Оставить комментарий

Ваш комментарий появится после проверки модератором.