Переезд на новый домен, смена 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.
Хороший повод затестить сборку, не думаешь? 😉