Блог по продвижению сайтов Блог по SEO

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

Просмотров: 11653

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

редирект 301 опенкарт

Все началось с того, что меня один клиент по продвижению попросил сделать редирект в его магазине Opencart 2.1.

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

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

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

Напомню стандартный синтаксис редиректа:

Redirect 301 /smartfony https://newshop.by/smartphone

Redirect 301 - это начало редиректа
/smartfony - старый url без домена и https
https://newshop.by/smartphone - новый url с доменом и https

Попробуйте прежде всего именно этот вариант, но он чаще всего не сработает в Opencart. Не расстраивайтесь, ниже есть и другие варианты редиректов.

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

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

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

Прежде всего, еще раз напомню, что стандартный редирект вида: Redirect 301 /старый адрес https://новый адрес в 99% случаев банально не работает и выдает ошибку.

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

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

Адрес старой страницы пишется без префиксов, вот так:


RewriteCond %{QUERY_STRING} ^_route_=oformlenie/$
RewriteRule ^(.*)$ https://belvii.by/oformlenie-pamyatnikov/? [R=301,L]

Еще вариант для каких-то сложных url типа https://platus.by/index.php?route=information/uni_news&news_id=2

RewriteCond %{REQUEST_URI} ^/index.php [NC]
RewriteCond %{QUERY_STRING} ^(.*)news_id=2$
RewriteRule ^(.*)$ https://platus.by/news/? [L,R=301]

То есть сначала мы определяем условия - то есть наличие в запросе сложной конструкции с index.php, затем проверяем что именно там содержится нужный нам материал с id=2, при этом (.*) - означает любые символы до нужного нам news_id=2 и затем уже непосредственно редирект на какой-то адрес.

Читайте также:  Лучший «движок» или выбираем платформу для интернет-магазина

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

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

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

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

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

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

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

Бонус

Прямо сейчас вы можете получить доступ к этому контенту для подписчиков. Достаточно ввести свой правильный емейл, и после подтверждения вам откроется полное содержимое этой страницы.

Получить бесплатно

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

  • Подождите минут 5-10.
  • Попробуйте другую почтовую сеть, лучше всего работают mail.yandex.ru или gmail.com.
  • Проверьте папку СПАМ - может нужное письмо именно там. После чего обязательно отметьте его и кликните - НЕ спам.
  • Если ничего не получилось, напишите мне в Контакты и укажите ссылку на страницу, версию браузера и примерный порядок действий.

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

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

Читайте также:  Как подключить онлайн платежи на сайте

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

Простой редирект с другого домена

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?grillcraft\.ru$ [NC]
RewriteRule ^(.*)$ https://grillkraft.ru/$1 [R=301,L] 

Редирект сразу с двух доменов

А если нужно сразу с двух доменов (например, английского и кириллистического) сделать редирект?

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

Строка с xn--80afpie2adrr0f - чтобы показать как делать редирект с кириллистического домена магазина. Если у вас такого нет, можете просто удалить ее.

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

Работает, если нужно сделать редирект с поддомена на основной домен. Все страницы ведут туда, куда нужно, на соответствующие страницы основного сайта.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^new.orion-arzamas.ru$ [NC]
RewriteRule ^(.*)$ https://orion-arzamas.ru%{REQUEST_URI} [R=301,NC,L,QSA]

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

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

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

Нужно обязательно убедиться, что старый товар открывается без проблем. Ну типа такого: http://test1.moytop.com/kategoriya-new/zhenskaya-steganaya-kurtka-scanndi-cw2611

Если будет ошибка 404 (нет такой страницы, обновите кэш в Opencart и браузере и попробуйте еще раз). Опять ошибка? Тогда нужно прописывать редирект, если этого не сделать, то есть риск, что товары вылетят из индекса.

При этом товаров могут быть тыщи, согласитесь, нужно простое решение,  не перелопачивать же все товары вручную!

Если у вас установлен Ocstore, то там есть SEO PRO и это дело работает автоматически. НО! Не у всех! И не всегда! И не в во всем контенте! :whew:

Поэтому если по каким-то причинам автоматом не получилось сделать, то нужно вручную массово поменять URL категории и при этом оставить рабочими все товары (автоматически проставить редирект, чтобы не было 404 ошибки).

Читайте также:  Сервис для парсинга поисковых систем Яндекс и Google

Вот такой код редиректа у меня работает в Опенкарте, проверял на 2 и 3 версии:


RewriteEngine On
RewriteBase /
RewriteRule ^kategoriya-old/?(.*)$ https://test1.com/kategoriya-new/$1 [R=301,L]

или такой вариант:

RewriteCond %{QUERY_STRING} ^_route_=kategoriya-old/?(.*)$
RewriteRule ^(.*)$ https://test1.com/kategoriya-new/? [R=301,L]

test1.com - ваш новый домен
kategoriya-old - старая категория (без https)
kategoriya-new - новая категория (с https)

Обязательно обратите внимание на следующее:

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

Редирект 404 страницы на главную

Иногда в магазине разом меняются все URL товаров или категорий (например, при переезде на новый движок или при большой смене ассортимента) и возникает куча страниц, где выдается 404 ошибка - мол, этой страницы по данному адресу больше не существует.

Я уже выше рассматривал как надо правильно настраивать редиректы на каждый URL, но ведь иногда не хочется заморачиваться и не делать такие "точечные" редиректы, а просто взять и переадресовать все 404 страницы, например, на главную страницу.

Не хочу разбирать, почему это не особо правильный подход, просто приведу решение как это сделать (проверял на Опенкарт 3, думаю на 2 тоже должно работать):

  1. Открываем файл catalog/controller/error/not_found.php
  2. Включаем добавляем в начало код:
    <?php header("Status: 301 Moved Permanently"); header("Location:https://ваш-новый-сайт.ru/"); ?>
    

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

Редирект на SSL

Я уже ранее разбирал как делается редирект с http на https opencart, поэтому почитайте там.

Если ничего не получилось

Ну бывает, что никакие советы не помогают :wall:
Тут может и хостер быть косячный, и шаблон Opencart иметь какие-то хитрые модули на борту, и просто звёзды на сошлись.

В этом случае, не тратьте своё драгоценное время, отправляйтесь на биржу Кворк в раздел редиректы и вам сделают всё, что нужно всего за 500₽ :smile:

Успехов в нелегком деле настройки редиректов для Opencart. Хотя это и удачная система в целом (читайте выбор движка для магазина), но редиректы в ней отличаются от других CMS.

Полезный совет: Как можно быстро добавить полезную статью в закладки своего браузера: просто нажмите на клавиатуре "CTRL + D" и кнопку "Готово", это работает в большинстве браузеров, проверьте сейчас!

Блог — Сергея Арсентьева 📈
image
Сергей Арсентьев
Всего материалов на сайте: 241
Активных комментариев: 3 526
Работает онлайн: 11.3 лет
Читателей за это время: 2 580 749
Я в соцсетях —
Фото
Бесплатный видеокурс для начинающих. Что такое фриланс, можно ли на нем зарабатывать и сколько?
Бесплатно Подробнее
Фото
Бесплатная мини книга для тех, кто хочет заказать сайт, но растерялся во множестве CMS и вариантов выбора.
Бесплатно Подробнее
Фото
Пошаговый видеокурс "Как работать в Опенкарт" с уроками по добавлению товаров и статей.
Комментариев 52
  • Иван
    Иван

    Благодарю! Работает!

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

    У меня после добавления редикта RewriteCond %{QUERY_STRING} ^_route_=oformlenie/$
    RewriteRule ^(.*)$ https://belvii.by/oformlenie-pamyatnikov/? [R=301,L] (своих ссылки конечно же, редикт начал работать, но в админке при попытке редактировать новость, стала выдаваться ошибка)

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

    Спасибо!

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

    применил на версию 1,5 работает.
    Удивлен и благодарен, подписался первый раз в жизни на ваши новости

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

    Единственный редирект, который помог, спасибо!

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

    Не работает. Прописывал разные варианты, ни один не подошёл:

    # 301 редиректы
    RewriteCond %{QUERY_STRING} ^_route_=https://dezmagazin.ru/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5$
    RewriteRule ^(.*)$ https://dezmagazin.ru/specpredlozhenie/? [R=301,L]

    RewriteCond %{QUERY_STRING} ^_route_=https://dezmagazin.ru/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5
    RewriteRule ^(.*)$ https://dezmagazin.ru/specpredlozhenie/? [R=301,L]

    RewriteCond %{QUERY_STRING} ^_route_=/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5$
    RewriteRule ^(.*)$ https://dezmagazin.ru/specpredlozhenie/? [R=301,L]

    RewriteCond %{QUERY_STRING} ^_route_=/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5
    RewriteRule ^(.*)$ https://dezmagazin.ru/specpredlozhenie/? [R=301,L]

    RewriteCond %{QUERY_STRING} ^route=/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5
    RewriteRule ^(.*)$ https://dezmagazin.ru/specpredlozhenie [R=301,NC,L]

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

      вы не так прописывали.
      RewriteCond %{QUERY_STRING} ^_route_=index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5$
      RewriteRule ^(.*)$ https://dezmagazin.ru/specpredlozhenie/? [R=301,L]

      вот так надо было

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

        Сергей, вписал, всё равно не работает, можете сами проверить. https://dezmagazin.ru/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5

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

          так у вас нет ЧПУ страницы https://dezmagazin.ru/specpredlozhenie/ - я ее ввожу в браузере, у меня открывается https://dezmagazin.ru/index.php?route=barbarablog/single&barbara_blog_path=2&barbara_post_id=5

          попробуйте сделать редирект на страницу, которая имеет чпу, например https://dezmagazin.ru/sredstva-dlya-dezinsekcii/zhidkie-insekticidy/ или на главную.

          и вот так, я в прошлом посте ошибся, без index.php:

          RewriteCond %{QUERY_STRING} ^_route_=barbarablog/single&barbara_blog_path=2&barbara_post_id=5$
          RewriteRule ^(.*)$ https://dezmagazin.ru/? [R=301,L]

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

            Да в том-то и дело, ЧПУ specpredlozhenie к этой новости задано в админке, но не работает почему-то. Это проблема данного купленного шаблона, хотя в админке ЧПУ выставляется, оно не используется. Сделать тут что-либо сложно, надо изучать как в php формируются ссылки и переписывать.

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

              Обычно ссылки формируются только средствами самой cms, без использования шаблона, чаще всего используется модуль seo pro, он унифицирован и практически у всех работает одинаково.
              Но в любом случае это стоит сделать прежде всего, чтобы все ссылки были ЧПУ и правильно отображались, потом уже редиректы смотреть по необходимости.

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

                Ну в таком случае у CMS какой-то глюк именно при формировании ЧПУ новостей, для всех страниц заданные ЧПУ работают, а для новостей нет. Не знаю, может в СЕО-ПРО надо покопаться.

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

                в ocstore встроенный блог, пробовал добавлять - всё норм, там вручную seo url пишется.
                типа такого http://shop.moytop.com/obzory/vybor-obuvi/
                а если в шаблоне собственный модуль блога, то это, конечно, возможно.
                в этом случае проще всего обратиться к автору шаблона, может уже есть обновление.

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

                Ну да, там в настройках шаблона есть раздел новости, да, пожалуй напишу автору шаблона, мы всё-таки деньги заплатили. Спасибо.

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

    Сергей, здравствуйте.
    Хотел у вас уточнить, при смене CMS появилась необходимость настроить 301 редиректы.
    Спасибо за статью, все подробно описано, но возникло несколько вопросов.
    Сейчас url'ы товаров выглядят так:
    site.ru/products/tovar1
    site.ru/products/tovar2
    site.ru/products/tovar3
    ...итд
    На новом сайте на opencart:
    site.ru/tovar1
    site.ru/tovar2
    site.ru/tovar3
    ...итд

    Правильно ли я понял, что достаточно прописать массовый редирект:
    "RewriteCond %{QUERY_STRING} ^_route_=products/$
    RewriteRule ^(.*)$ https://site.ru/? [R=301,L]"
    после чего все товары будут открываться по url'ам без products?

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

    Добрый день. Подскажите как поставить редирект со страниц https://mysite.com////// со слешами в конце на странице без слеша - https://mysite.com

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

      Здравствуйте, не подскажу, никогда раньше не сталкивался.. )

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

    Благодарю вас!!! Отличная инфа по редиректам на опенкарт! :yes:

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

    Помогите! после редиректа появляеться ошибка 404...

    https://wilgood-servis.ru/remont-akpp-i-kpp-v-solnechnogorske/

    редирект на

    wilgood-servis.ru/remont-akpp-i-kpp-v-zelenograde/

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

      А скрин htacces файла со строкой редиректа есть?

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

        # SEO URL Settings
        RewriteEngine On
        # If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/

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

        RewriteBase /
        RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
        RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
        RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
        RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

        RewriteCond %{QUERY_STRING} ^_route_=remont-akpp-i-kpp-v-solnechnogorske/$
        RewriteRule ^(.*)$ https://wilgood-servis.ru/remont-akpp-i-kpp-v-zelenograde/? [R=301,L]

        ### Additional Settings that may need to be enabled for some servers
        ### Uncomment the commands by removing the # sign in front of it.
        ### If you get an "Internal Server Error 500" after enabling any of the following settings, restore the # as this means your host doesn't allow that.

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

          solnechnogorske/$ - попробуйте без / и zelenograde/? тоже, то есть

          RewriteEngine On
          RewriteCond %{QUERY_STRING} ^_route_=remont-akpp-i-kpp-v-solnechnogorske$
          RewriteRule ^(.*)$ https://wilgood-servis.ru/remont-akpp-i-kpp-v-zelenograde? [R=301,L]

          и попробуйте поставить в самый вверх этот редирект.
          если не получится, попробуйте уточнить момент у хостера.

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

    Спасибо! это работает

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

    Сергей, спасибо большое за файл с редиректами - помогло! :yes: :yes: :yes:

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

    Мне не помогла :cry: Может кто подскажет?
    Старый: http://piroflame.ru/articles.php/tPath/8/category/NOVOSTI
    Новый: http://piroflame.ru/news

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

      Возможно какие-то настройки хостера мешают.
      Попробуйте им написать, обычно нормальный хостер может помочь, если сформулировать, мол "на другом хосте работает, а у вас нет, в чем может быть причина, может какие-то особые настройки htaccess у вас и т.п.".

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

        Помогло такое решение
        Redirect 301 /articles.php/tPath/8/category/NOVOSTI http://piroflame.ru/news?
        P/S обязательно в конце знак вопроса "?"
        Opencart 2.3.0.2.5 pro

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

    Спасибо, помогло!

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

    При редиректе на подкатегорию, исчезает категория, т.е если я вызываю категорию ( в которой теперь сидят подкатегории) она сразу редиректит на подкатегорию, а нужно чтоб она осталась, а товары все бы редиректились из категории в подкатегории. Наверно это невозможно сделать :cry: .Но в вебмастере теперь весь товар который сидит уже в подкатегориях показывает ошибку 404

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

      А какая версия у вас, и Opencart или Ocstore?

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

    Здравствуйте. Скажите, а возможно ли сделать так: была одна категория, теперь нужно разбить её на подкатегории, соответственно товары расходятся по подкатегориям. Можно ли такой сделать массовый редирект из категории в подкатегории?

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

      Здравствуйте, да, я так делал.
      Потому внизу и написал в разделе "Массовый редирект внутри категории"

      RewriteEngine On
      RewriteBase /
      RewriteRule ^kategoriya-old/?(.*)$ http://ваш домен/kategoriya-old/kategoriya-new/$1 [R=301,L]

      По идее должно сработать.

      Кроме того, обратите внимание, что при перемещении товаров из категории в подкатегорию и выставлении "Главной категории" (которая есть в Ocstore) происходит автоматический редирект (для Ocstore 2.3 и выше).
      То есть если вы вручную выставляете в товаре главную категорию новую, то редиректы делаются автоматически.

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

    Спасибо Сергей за инструмент.Сделал вот такой редирект RewriteCond %{QUERY_STRING} ^_route_=modelnye_chekhly/kia_349/$
    RewriteRule ^(.*)$ https://elbinmotors.ru/modelnye-chekhly/kia/? [R=301,L]
    Не помогло.Вот скрин файла http://prntscr.com/mtieg0

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

      да не за что, видите, не всегда срабатывает, есть особенности у разных сайтов.
      попробуйте modelnye_chekhly/kia_349/ - на конце не указывать слеш.
      и/или наоборот после редиректа не указывать слеш RewriteRule ^(.*)$ https://elbinmotors.ru/modelnye-chekhly/kia

      то есть вот так например:
      1 --------------

      RewriteCond %{QUERY_STRING} ^_route_=modelnye_chekhly/kia_349/$
      RewriteRule ^(.*)$ https://elbinmotors.ru/modelnye-chekhly/kia? [R=301,L]

      2 --------------

      RewriteCond %{QUERY_STRING} ^_route_=modelnye_chekhly/kia_349$
      RewriteRule ^(.*)$ https://elbinmotors.ru/modelnye-chekhly/kia? [R=301,L]

      3 --------------

      RewriteCond %{QUERY_STRING} ^_route_=modelnye_chekhly/kia_349$
      RewriteRule ^(.*)$ https://elbinmotors.ru/modelnye-chekhly/kia? [R=301,L]

      и т.п.
      у меня бывало именно слеш влиял на работу.
      вдруг и вам поможет )

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

    Добрый день! Спасибо за помощь, тоже помогло! Подскажите, если мне надо сделать 301 редирект таким способом около 500 позиций, это будет нормально? Я имею ввиду, не будет ли каких-то негативных последствий для сайта, например он станет медленнее загружаться или еще что-то подобное?

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

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

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

    RewriteCond %{QUERY_STRING} ^route=common/home$
    RewriteRule ^(.*)$ ? [R=301,NC,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 редиректом. Пришлось поменять немного контроллер.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Комментировать
Смотреть еще комментарии
Добавить свой комментарий