301 redirect для Opencart

категория: , Модули, Полезности


Опубликовано: 19.01.2016 Просмотров: 6867 Комментарии: 30


301 redirect для Opencart

301 redirect для Opencart это сплошная головная боль для разработчиков и владельцев магазинов. Для такой задачи я решил написать свой модуль


301 redirect для Opencart это сплошная головная боль для разработчиков и владельцев магазинов. Если делать это стандартным способом через .htaccess в одну строку, то получим на выходе странный url и несуществующую страницу. Странный он потому что редирект якобы пошел, но в конце нового адреса у нас прицепляется хвост ?_route_=.. Всему виной идет строка RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Решается эта проблема несколькими способами, либо правим оригинальный код opencart-а в файле .htaccess, либо на каждое условия переадресации у нас будет 3 строки кода. Это очевидно неудобно и слишком сложно.

В процессе работы с движком и выполнения множества заказов я задумался о удобной системе редиректов. Главным условием было простота и работоспособность. Первое что пришло в голову это смотреть на альтернативные способы 301 редиректа, а именно на php. Было принято решение написать свой редиректор для Opencart.

Преимущество модуля

  • Условия для редиректов прописываются прямо в админке!
  • Установка модуля пару секунд, ничего нигде настраивать не нужно
  • Работает на всех версиях Opencart 1.x-2.x
  • Никакие файлы не перезаписываются и ничего не надо править.

После установки модуля переходим в настройки магазина и в первой вкладке у нас появится поле ввода условий в формате

old-url==new-url
old2==new2
...

То есть новый редирект пишем с новой строки и разделяем от куда и куда двойным символом равно «==» В общем все предельно просто.


Комментарии:


Фото комментатора

Тимур 05.02.2016

Здравствуйте, подскажите пожалуйста в какую папку нужно скопировать файлы модуля?
Администратор

Ответ for-opencart.com 05.02.2016

Добрый день! Для Opencart 1.x версии - копируем в папку vqmod/xml

Для opencart 2 версии устанавливаем редиректор через админку в Модификаторах

Фото комментатора

clevergod 14.02.2016

Добрый день, спасибо за работу, но у меня не получилось запустить в работу данный чудо-модуль на opencart 2.1.0.2 пример: http://sait.kz/химчистка-2/==https://sait.kz/himchistka/ так нужно писать? Редирект не происходит, робовал на http так же нет редиректа
Администратор

Ответ for-opencart.com 14.02.2016

Добрый день! Ну как вы читаете то?))

Редиректы нужно вводить БЕЗ http и домена, то есть:

химчистка-2/==himchistka/

Фото комментатора

clevergod 14.02.2016

Спасибо за ответ, но все равно не работает пишу:химчистка-2/==himchistka/ ниже ссылки на сайты http://kirbyfan.kz/химчистка-2/ https://kirbyfan.kz/himchistka/
Администратор

Ответ for-opencart.com 14.02.2016

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

Фото комментатора

clevergod 15.02.2016

Спасибо, это божественно! Действительно редирект не работает на русском шрифте, на латинице все замечательно!
Администратор

Ответ for-opencart.com 15.02.2016

Спасибо за тестирование, буду знать. Подредактирую статью.

Фото комментатора

stanislav 15.02.2016

Доброй Ночи, простите пож-та за глупый вопрос, а можно ли как то использовать неопределенные переменные типа ? или * просто хочу целый каталог /products зарулить в иное место, но получается что если в линке есть html или pdf редирект работает только при указании полного пути старой ссылки.
Администратор

Ответ for-opencart.com 15.02.2016

Не совсем понял в каком смысле неопределенные переменные? Что бы редиректить каталоги надо писать более сложны условия. Это надо переделывать модуль. Есть в мыслях написать полноценный модуль, но пока руки не дошли.

Фото комментатора

Владимир 03.05.2016

добрый вечер, подскажите как реализовать 301 редирект целого раздела любым способом или через .htaccess или как угодно, но нужно редиректнуть целый раздел при переносе с одной категории в другую!!! то есть было: сайт/категория-1/раздел (и тут куча товара) в сайт/категрия-2/раздел (и эта же куча товара)
Администратор

Ответ for-opencart.com 03.05.2016

Посмотрите на opencartforum есть модуль редиректов - там можно сделать такой редирект. По .htaccess увы не подскажу.

Фото комментатора

Дмитрий 03.05.2016

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

Ответ for-opencart.com 03.05.2016

Для таких редиректов есть модули на форуме, но платные.

Фото комментатора

Виталий 20.05.2016

Этот модуль переносит(перенаправляет) весь сайт или нет?
Администратор

Ответ for-opencart.com 20.05.2016

Нет, модуль редиректит только отдельные страницы на сайте.

Фото комментатора

Евгений 20.09.2016

Модуль работает, но файл хтаксес без изменений. Через что осуществляется редирект и как на это смотрят поисковики?
Администратор

Ответ for-opencart.com 20.09.2016

Редирект выполняется через php и сервер отдает код ответа такой же как и при htaccess редиректе

Фото комментатора

Елена 10.10.2016

Добрый день! Мне нужно настроить переадресацию страниц старого сайта на новый. Домен один и тот же. На старом сайте использовались укороченные ссылки, например, site.ru/tovar1 На новом сайте ссылка с учетом категории: site.ru/kategoriya/tovar1 Будет ли в таком случае работать переадресация? Заранее благодарю. С уважением)
Администратор

Ответ for-opencart.com 10.10.2016

В редиректоре пишите:

tovar1==kategoriya/tovar1

Фото комментатора

Михаил 10.10.2016

Модуль меняет в браузере старую ссылку на новую, но если в строке присутствует символ &, то к нему справа добавляется amp; В итоге все равно ошибка 404. Как убрать этот amp; ? Пример. Должна открыться ссылка: http://site.ru/index.php?route=information/information&information_id=6. Открывается: http://site.ru/index.php?route=information/information&information_id=6
Администратор

Ответ for-opencart.com 10.10.2016

Приведите пример, пробовал с & все ок.

Фото комментатора

Артем 10.10.2016

Здравстввуйте, ваши модули подойдут для osstore ?
Администратор

Ответ for-opencart.com 10.10.2016

Да, тестировалось на всех.

Фото комментатора

Ксандр 10.10.2016

Привет, поставил ваш модуль, на ocStore Версия 1.5.4.1.1 вроде всё нормально делает редирект, но выдаёт ошибку вверху страницы: Notice: Undefined offset: 1 in /home/*/*/*/vqmod/vqcache/vq2-catalog_controller_common_header.php on line 10 Пожалуйста, подскажите что не так? Или куда смотреть? вот блок с кодом: if($this->config->get('config_redirects')){ $redirects = array(); $redirect_elements = explode(PHP_EOL, $this->config->get('config_redirects')); foreach($redirect_elements as $element){ $to = explode("==", $element); $redirects[$to[0]] = $to[1]; } на последную строчку выдаёт ошибку(((...
Администратор

Ответ for-opencart.com 10.10.2016

Строку 

$redirects[$to[0]] = $to[1];

Поменяйте на 

if(isset($to[0]) and isset($to[1])){

$redirects[$to[0]] = $to[1];

}

Фото комментатора

Алексей 11.10.2016

Здравствуйте! Подскажите, пожалуйста, как можно сделать редирект по маске? У меня ест старые страницы типа: сайт.ру/catalog/privet-vsem, мне надо с них настроить редирект на сайт.ру/katalog/privet-vsem. Т.е. изменится только первая "вложенность", т.е. вместо /catalog/ будет /katalog/
Администратор

Ответ for-opencart.com 11.10.2016

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

Фото комментатора

Maxim 25.12.2016

Круть. Спасибо вам, автор, я этого никогда не забуду. Перерыл все форумы. А самое рабочее решение у вас. Еще раз огромное спасибо.
Администратор

Ответ for-opencart.com 25.12.2016

Пожалуйста :)

Иногда решения бывают простыми, пользуйтесь.

Фото комментатора

Sasha 11.04.2017

Добрый день. Подскажите, Ваш мдоуль работает с мультимагазином и мультиязыком?
Администратор

Ответ for-opencart.com 11.04.2017

Добрый. Пробуйте, Должно работать.

Фото комментатора

Андрей 17.05.2017

Приветствую! Зацикливается редирект. URL-1: /index.php?name=pages&file=staraya-stranica URL-2: /novaya-stranica/ Прописывал вот так: index.php?name=pages&file=staraya-stranica==novaya-stranica/ Результат такой: http://сайт.ru/?name=pages&file=staraya-stranica
Администратор

Ответ for-opencart.com 17.05.2017

Смотрите где-то ошибки, должно работать нормально.

Фото комментатора

Дарья 17.05.2017

Здравствуйте. А ссылки с "?" не редиректятся или их как-то по-другому можно прописать?
Администратор

Ответ for-opencart.com 17.05.2017

Редиректятся

Фото комментатора

Николай 17.05.2017

Добрый день. Пишу: index.php?route=journal2/blog/post&journal_blog_post_id=10==rezinovaja-kraska-po-betonu Попадаю все равно на первую ссылку. (http://zonko.ru/index.php?route=journal2/blog/post&journal_blog_post_id и http://zonko.ru/rezinovaja-kraska-po-betonu). Opencart 2.1.0.1 rs2, подключено SeoPro
Администратор

Ответ for-opencart.com 17.05.2017

Главное что бы работала ссылка в сеопрос на journal блог

Фото комментатора

Дмитрий 17.05.2017

Проблема в следующем. ocStore 2.3.2.1 Установил модуль.. обновил почистил кэш. Но при заходе в настройки магазина этих полей нет... НО если создать новый магазин, то эти поля есть. В чем может быть проблема?
Администратор

Ответ for-opencart.com 17.05.2017

Видимо где-то модификатор не зацепился.

Попробуйте вручную код внести из модификатора ocmod

Фото комментатора

Борис 17.05.2017

Здравствуйте! Нужно сделать редирект с страницы (site.ru/index.php?route=product/category&path=146_148&page=2) на (http://site.ru/tapochki-relaksy/)подскажите как? У меня что-то не получается... по разному побывал(
Администратор

Ответ for-opencart.com 17.05.2017

Рекомендую просто закрыть от индексации страницы пагинации https://microdata.pro/opencart-dev/noindex-nofollow

Фото комментатора

Женя 17.05.2017

Спасибо Автору! Очень помог! То что нужно!
Администратор

Ответ for-opencart.com 17.05.2017

Пользуйтесь :)

Фото комментатора

Дмитрий 17.05.2017

Не получается сделать редирект с товара на товар в котором изменился урл у родительского каталога. test.ru/catalog/tovar на test.ru/catalog1/tovar Страница отдает 404 В итоге получая урл test.ru/catalog/tovar ?_route_=catalog1/tovar
Администратор

Ответ for-opencart.com 17.05.2017

Надо вводить без домена

old==new_url

Фото комментатора

андрей 20.06.2017

А как настраивать для ОС 2302? где прописывать соответствия?
Администратор

Ответ for-opencart.com 20.06.2017

После установки в админке в настройка в первой вкладке будет поле для ввода редиректов

Фото комментатора

андрей 20.06.2017

Notice: Undefined offset: 1 in /var/www/andrzej/catalog/www/nicoa.ru/system/storage/modification/catalog/controller/common/header.php on line 10Notice: Undefined offset: 1 in /var/www/andrzej/catalog/www/nicoa.ru/system/storage/modification/catalog/controller/common/header.php on line 10 - после включения модификатора и очистки кэша модификаторов. Работа в режиме инкогнито
Администратор

Ответ for-opencart.com 20.06.2017

Смотрите соблюдены ли все условия

old==new

без домена и прочего

Фото комментатора

Юрий 02.08.2017

Notice: Undefined offset: 1 in /home/icomua/ru-store.ru/www/vqmod/vqcache/vq2-catalog_controller_common_header.php on line 10 Та же ошибка что и у Андрея! Все правила соблюдены, пишу без http и названия сайта пример: ipad/ipad-pro​/==ipad/ipad-pro-10-5/ Пожалуйста проверьте редиректор.
Администратор

Ответ for-opencart.com 02.08.2017

Там в модификаторе строку

$redirects[$to[0]] = $to[1];

замените на

if(isset($to[0]) and isset($to[1])){
  $redirects[$to[0]] = $to[1];
}
Фото комментатора

Рус 06.09.2017

Добрый день! Помогите с проблемой: Меняли цмс-ку и программер настраивал редиректы и помоему что-то намудрил, через время повылазили такие почти все страницы товаров со старого сайта в таком формате с ошибкой 404 домен.сом/index.php?_route_=shop/product/troinaia-sistema-ochistki-vody-sinor-fmv-300 Есть рабочая страница домен.сом/troinaia-sistema-ochistki-vody-sinor-fmv-300 Вопрос как избавится от index.php?_route_=shop/product/ ???
Администратор

Ответ for-opencart.com 06.09.2017

Смотрите, у Вас проблема в том что программист неправильно настроил редирект через .htaccess Из-за чего и такие баги идут. Мой модуль как раз и решает эту проблему. Вам нужно взять все старые страницы, новые и сопоставить. То есть старый_адрес==новый_адрес
Фото комментатора

Богдан 08.09.2017

Как скачать Ваш модуль?
Администратор

Ответ for-opencart.com 08.09.2017

Вот здесь можно https://opencartforum.com/files/file/2908-menedzher-301-redirektov/
Фото комментатора

Виктор 13.09.2017

Как можно скачать модуль? ссылки нигде не видно.
Администратор

Ответ for-opencart.com 13.09.2017

Вот здесь можно, сайт переносил файлы потерялись - позже сделаю Но модуль скачать здесь сейчас можно https://opencartforum.com/files/file/2908-menedzher-301-redirektov/
Фото комментатора

Александр 31.10.2017

А где скачать модуль?
Администратор

Ответ for-opencart.com 31.10.2017

Вот здесь можно https://opencartforum.com/files/file/2908-menedzher-301-redirektov/

Быстрый поиск

Похожее

  • SEO URL

    SEO URL — это ЧПУ (человеко понятные УРЛ). Простыми словами это текстовые ссылки http://shop.com/apple/iphone5 вместо стандартных …route=product/product&product_id=42 которые имеют множество преимуществ.

  • экспорт импорт opencart

    Обзор всех модулей (платных и бесплатных) для импорта, экспорта и обновления товаров в Opencart из файлов xls и csv

  • SEO Manager - ЧПУ для системных страниц

    SEO Manager это отличный модуль для задания системным ссылкам accout/account или product/special ЧПУ

  • Opencart yml

    Бесплатная выгрузка в Яндекс маркет - Opencart yml. Это отличный способ синхронизировать свои товары с Яндекс Маркесом совершенно бесплатно.

  • Установка ssl сертификата на сервер под оболочкой ajenti

    Краткая и доступная информация об опыте установки платного ssl сертификата на сервер. Пошаговая инструкция без воды

Новое на сайте