Блог Сергея Арсентьева

Создание и продвижение сайтов с нуля.
Только реальные способы заработка в сети.
Проверено на личном опыте.

Переезд магазина Opencart на SSL сертификат или меняем HTTP на HTTPS

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

Фактически я установил SSL сертификат Opencart и теперь хотел заставить его корректно работать с ним. Причем чтобы сайт был доступен по двум протоколам одновременно.

ssl сертификат opencart

Мне нравится Opencart (все преимущества этого движка), но чтобы докопаться до истины потребовалось столько усилий, что я сто раз спросил сам себя: ну почему Opencart - не WordPress, где подобная проблема даже не проявляется? :facepalm:

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

Итак, сама задача: переезд с HTTP на HTTPS

Если вы делаете SEO продвижение магазина на Opencart, то вам придется корректно настроить переезд в Opencart 2.1 с HTTP-протокола на HTTPS (зачем вообще нужно https для SEO).

Обычно сам SSL сертификат предоставляется и устанавливается еще хостером. В противном случае придется его покупать отдельно - вот тут я нашел самые низкие цены на SSL сертификаты.

Я всегда выбираю хостеров с бесплатными или условно-бесплатными SSL, которые все эти работы делают за вас - и вам также советую делать, экономит время и деньги :yes:

То есть при вводе http://адрес.домена с сайта уже что-то начинает показываться - значит сертификат куплен и установлен на хостинге, но еще не настроен как положено!

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

Примерно вот так:

HTTPS не подгружает на Opencart

Это потому, что в файле config.php (редактируется через FTP - как с ним работать) обычно прописываются пути по умолчанию, откуда нужно тянуть скрипты и картинки, и по умолчанию там прописан обычно HTTP домен.

Например, вот так:

https-opencart-admin

По логике вещей вроде бы достаточно сделать две простые процедуры:

  1. Поменять второй адрес на HTTPS, то есть define('HTTPS_SERVER', 'http://ваш.домен');
    И поменять два последних адреса аналогично в config.php, который в папке /admin - там две строчки затрагиваются, которые после // HTTPS стоят.
  2. В настройках Opencart во вкладке «Сервер» поставить галочку «Включить SSL».
    И типа всё должно заработать легко и непринужденно.

Но Опенкарт не был бы собой, если бы не преподнёс ряд сюрпризов, и самый главный из них такой:

После включения SSL - HTTPS сайт вообще у меня перестал работать ((

Сделав всё по инструкции, вы вдруг обнаруживаете, что обычная версия сайта стала теперь корявой и фактически не отображается.

То есть включили в админке «Использовать SSL», добавили в конфиг https во второй строке, а в зайдя на https сайт - видите примерно такую ошибку:

Страница недоступна
Сайт выполнил переадресацию слишком много раз.
Удалите файлы cookie..
ERR_TOO_MANY_REDIRECTS

страница недоступна переадресацию слишком много раз

Согласитесь, это совсем не то, что ожидали.

Решение проблем с подключением HTTPS

Есть два пути решения вопроса:

1. ИСПОЛЬЗУЕМ «костыль»

Вы прописываете в config.php (для фронтенда и для админки) везде HTTPS, даже в HTTP (!) секции.

ssl сертификат opencart https

При этом ваш обычный старый http-сайт работать не будет. Но вы делаете с него редирект в htaccess (ниже расскажу как) - и всё пучком.

Метод простой и безотказный, рекомендую для всех, кто ценит своё время.

Но для любителей нелёгких путей предлагаю способ №2, как якобы более правильный с точки зрения SEO.

2. Исправить баг с HTTPS

Чиним баг с SSL сертификатом Opencart с помощью небольшого расширения, качаем отсюда http://opencartforum.com/files/file/3272-seo-fix-https/

Устанавливаем как обычное дополнение из админки.

И очищаем менеджер дополнений + заодно весь кэш (смотрите видео как очистить кэш Opencart).

Обязательно проверьте, чтобы в настройках магазина Опенкарта во вкладке СЕРВЕР не было включено GZIP-сжатие, при нем данный мод не работает, на момент написания статьи по крайней мере.

И теперь сайт будет доступен как и в обычном HTTP режиме, так и в защищенном HTTPS.

Визуально это можно проверить в режиме инкогнито (CTRL + SHIFT + P в Firefox или CTRL + SHIFT + N в Chrome), чтобы сохраненные браузером настройки не влияли на результат эксперимента. Ну или в другом браузере просто открыть, на котором вы раньше не заходили на сайт.

А также можно проверить в любом инструменте на ответ сервера, например, http://checkmy.ru/

Вводите адрес сайта с http - ответ 200, вводите с https - тоже 200.

ответ сервера с http на opencart

ответ сервера с https на opencart

И если при этом в браузере что в обычном, что в защищенном соединении открывается сайт - значит всё получилось как и планировали :clap:

Редирект с HTTP на HTTPS в Opencart

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

В конце концов должен остаться только один. Как у горцев :cool:

Для этого всегда используется один и тот же инструмент: 301 редирект, который явно указывает поисковику, что все страницы сайта HTTP переехали на новый адрес HTTPS, а про старый сайт можно забыть.

Я считаю нормальной практикой - просто сделать редирект 301 сразу после успешного включения SSL сертификата на Opencart и больше не заморачиваться этой рутиной.

Я так делал на 50+ сайтов, никаких массовых падений позиций никогда не видел.

А что скажет Яндекс?

Но если придерживаться официальных рекомендаций от Яндекса, то перед тем, как сделать решающий финишхим и поставить 301 редирект на все страницы, Яндекс обычно рекомендует делать так:

  • пока висит версия с HTTP - сделать внутри панели Вебмастера указание о переезде сайта с HTTP на HTTPS
  • подождать недельку (пока это правило не вступит в силу, может и раньше произойдет)
  • после этого сделать редиректы со всех внутренних страниц HTTP на HTTPS.

ИМХО лишние заморочки, но почему бы и нет? Тем более, что бывают ситуации, что нужен и http-сайт и https одновременно, у меня как раз была такая ситуация.

И кроме этого, при включении SSL без костылей в виде тотального прописывания HTTPS в конфигах, у вас появляется возможность следовать рекомендациям Яндекса.

Google этим не заморачивается и просто рекомендует, чтобы добавили новую версию сайта на HTTPS в панель вебмастера Гугл, а со старого сделали редирект.

Так что когда вы решите, что старый сайт на HTTP более не нужен, то делайте редирект с него на новую версию.

Обычно хватает такого кода в начале файла htaccess:

RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Или ещё вариант:

RewriteEngine on
RewriteCond %{HTTP:X-SSL-Emu} !on
RewriteRule .* http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Или еще вот так:

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Вообще разных способов сделать 301 редирект - множество.

Они по-разному работают на разных хостингах. Поэтому универсального рецепта просто нет.

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

Те варианты, что я привел - проверены на разных толковых хостингах. Если не определились с хостером или планируете съезжать, то почитайте какие хостинги я рекомендую, там эти способы обычно работает хорошо.

После правильного редиректа все внутренние страницы старого HTTP сайта должны вести на аналогичные страницы нового сайта с HTTPS.

Ответ сервера при этом будет 301 кодом:

редирект https opencart ok

Ну и не забудьте после успешного переезда на новый SSL сертификат магазина на Opencart, добавить новые карты сайта с HTTPS перед доменом в robots.txt (если используете там) и в панелях вебмастеров - читайте как добавить сайт в панель Яндекса и в панель Гугл.

Автор блога
“Измени свои привычки, и изменится твоя жизнь..”
Специалист по созданию и продвижению сайтов (SEO и реклама), фрилансер с многолетним опытом.
Статистика блога
  • Всего материалов на сайте: 191
  • Активных комментариев: 2 804
  • Работает онлайн: 5.8 лет
  • Читателей за это время: 1 521 232

Давай, оцени статью!



🎁   Поделитесь статьей в социальных сетях   🎁
Комментарии на блоге
Добавить свой комментарий
Подробнее в Продвижение сайтов, Создание магазина
Бесплатно делаем онлайн калькулятор и добавляем на сайт

Зачем вообще нужен калькулятор на сайте? Хотя бы потому, что он даёт рост конверсии и поведенческих факторов, плюс снижение количества...

Обзор сервиса Турболого для создания логотипов

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

Закрыть