Как правильно сделать 301 редирект в OpenCart без костылей и сторонних модулей


343

Переезд на новый домен, смена URL категории, удаление товара, слияние карточек - всё это требует 301-редиректа. SEO не прощает 404, Google не любит, когда старая ссылка ведёт в никуда. А в дефолтном OpenCart этого нет. Вообще. Ни поля в таблице, ни проверки в контроллере, ни простого способа сказать "эта страница теперь здесь". Хочешь редирект - либо .htaccess (для пары страниц норм, но когда их пару сотен, ну такое себе), либо модуль за 20-40 баксов, часто игнорирующий архитектуру платформы и здравый смысл. И вообще не нужный, это базовая фича!!!

Само собой, я это запилил по-человечески:

  • В админке, на вкладке SEO теперь есть поле "Редирект 301", вставил новую ссылку, сохранил.
  • В контроллерах (category.php, product.php) простая проверка: если поле заполнено - header("HTTP/1.1 301 Moved Permanently"); header("Location: " . $redirect_url); exit;
  • Всё, никаких модулей, никаких хаков в .htaccess, никаких костылей. Редирект работает на уровне PHP, быстро, надёжно, SEO-дружественно.
  • Если редирект не нужен - поле пустое, идём дальше.

Микрофича, но сохраняет время, силы и нервы для чего-то более интересного, чем копипастить вручную ссылки в htaccess.

Хороший повод затестить сборку, не думаешь? 😉


Написать комментарий
Введите код с картинки