Canonical с http на https для товаров на поддоменах. Opencart 2

Чтобы сменить все canonical для Opencart 2.3, то часто вы можете встретить такое решение.

В двух основных конфигах, которые одинаково называются config.php, но находятся один в корне сайта, а другой в папке admin нужно внести изменения – ко всем http добавить s, ко всем без исключения.

Это в том конфиге, что в корне сайта:
// HTTP
define('HTTP_SERVER', 'https://mysite.com/');

// HTTPS
define('HTTPS_SERVER', 'https://mysite.com/');

А этот, что в папке admin
// HTTP
define('HTTP_SERVER', 'https://mysite.com/admin/');
define('HTTP_CATALOG', 'https://mysite.com/');

// HTTPS
define('HTTPS_SERVER', 'https://mysite.com/admin/');
define('HTTPS_CATALOG', 'https://mysite.com/');

И всё как будто бы красиво, всё работает, но если вы имеете дело с поддоменами, то ваш каноникал на карточку товара будет http.

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

Долго бился, искал решение этой проблемы, но везде было только классическое решение, которое описано выше. Видимо, мало кто доходил до поддоменов и с региональным продвижением на opencart 2.

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

Потом вдруг показалось, что решение вроде бы нашлось нашлось.

Якобы, в файле catalog/controller/seo_url.php нужно добавить одну строку:

после
$url_info = parse_url(str_replace('&', '&', $link));
написать
$url_info['scheme'] = 'https';

Но мне это не помогло. У меня на сайте используется SeoPro. Поэтому пошел экспериментировать в его контроллер catalog/controller/startup/seo_pro.php:

После строки
$component = parse_url(str_replace('&', '&', $link));

Вставил
$component['scheme'] = 'https';

И всё получилось.

Пробуйте, и у вас получится. Удачи!

Оцените статью
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии