Как включить SSL и сделать редирект на HTTPS. На примере Opencart 2
1. Надо такой сертификат SSL приобрести (что недёшево бывает) у хостера, вашего или не вашего или у специальных компаний. Либо можно получить бесплатный SSL-сертификат Let'sEncrypt у вашего хостера. Бывает, что хостер может вам выделить несколько сертификатов для ваших доменов, зависит от тарифа.
2. Дальше, если у вас Opencart, то там в админке настройках надо включить SSL.
2.2 И надо в двух конфигах (config.php и admin.config.php) прописать https везде, где http
просто config.php
// HTTP define('HTTP_SERVER', 'https://yourshop.domain.ru/'); // HTTPS define('HTTPS_SERVER', 'https://yourshop.domain.ru/');
admin/config.php
// HTTP define('HTTP_SERVER', 'https://yourshop.domain.ru/admin/'); define('HTTP_CATALOG', 'https://yourshop.domain.ru/'); // HTTPS define('HTTPS_SERVER', 'https://yourshop.domain.ru/admin/'); define('HTTPS_CATALOG', 'https://yourshop.domain.ru/');
3. Грамотно настроить .htaccess, вот возможные варианты. Пишите директивы в нужной последовательности и не загромождайте файл:
Рекомендуется у хостера hts.ru в разделе Помощь потребовали всё-таки некоторой доработки. Вот что предлагалось:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC] RewriteCond %{HTTP:X-SSL} !^yes$ RewriteRule (.*) https://yourshop.domain.ru/$1 [R=301,L] </IfModule>
И вот что стало (привожу часть htaccess, где идёт речь про редиректы)
... <IfModule mod_rewrite.c> # начинаем с rewriteengine RewriteEngine On # далее проверяем, если не SSL (т.е. не https) RewriteCond %{HTTP:X-SSL} !^yes$ [OR] # или если домен с www RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC] # то переводим на https без www RewriteRule (.*) https://shop.inspire2.ru/$1 [R=301,L] # все правила пишем до RewriteBase /, после него идут уже правила opencart RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^system/download/(.*) index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] </IfModule> ...
Проверяйте работает ли ваш редирект, например, тут: http://www.prcy-info.ru/index.php/redirect-checker, проверьте с http и с https, а также с www и без www - всё должно редиректить на один домен с https (либо с www, либо без www, смотря что настраиваете)
ещё вариант пробуйте, если не помогает
RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.?yourshop.domain\.ru$ [NC] RewriteCond %{HTTP:X-Forwarded-Proto} !=https RewriteRule ^(.*)$ https://yourshop.domain.ru/$1 [R=301,L]
ещё вариант
RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*) https://%1/$1 [L,R=301] //RewriteCond %{HTTPS} on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*) https://%1/$1 [L,R=301]
Вообще, если какие-то непонятности с сайтом, скорее всего неграмотно составлен htaccess, надо перепроверить.
Дальше осталось подумать про СЕО.
Что необходимо сделать в плане СЕО при переезде на HTTPS?
- Добавить версию сайта с HTTPS в панель вебмастера Яндекс ( при этом старый сайт удалять не надо, они потом склеятся)
-
В яндекс вебмастере в версии сайта с http перейти во вкладку Индексирование -> Переезд сайта и поставить галочку на пункте "Добавить HTTPS" и нажать сохранить.
После это в течение нескольких дней произойдет склейка зеркал, а также обнулится Тиц - не стоит переживать, со следующим апом он вернется!
- Добавить версии с https:// и https://www. в панель Google Webmaster
- Изменить в файле robots.txt директивы Host: и Sitemap: на https версии сайта. Также убедиться, чтобы карта сайта отдавала ссылки с новым протоколом.
После всех взаимодействий с переходом для оценки результатов переноса сайта на https желательно выждать около месяца и посмотреть повлиял ли переход на https на позиции сайта.
(источник - https://protectyoursite.ru/полезные-материалы/как-без-проблем-перевести-сайт-на-https)
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 1 Git для начинающих. (12.04.2013)
- 0 Composer – пакетный менеджер PHP. Что и как? (22.07.2014)
- 0 Opencart: Скидки для пользователей, надо указывать в колонке "количество" значение, отличное от нуля! (02.07.2014)
- 0 Лишь этот голос. Наталья Ром – Хочу говорить крaсиво! Техники речи. Техники общения (23.07.2014)
- 0 Как оперативно создать интернет-магазин на основе шаблона OpenCart? (05.06.2014)
- 0 Путешественнику на заметку: Необходимые выражения на разных языках (28.11.2014)
- 0 Synology и VPN подключение удалённого компьютера. (31.05.2014)
- 0 MySQL и PHP: Вычисление возраста (количество лет) по дате рождения (20.06.2017)
- 0 Браузер не открывает страницы, а скайп и icq работают. Что делать? (12.05.2014)
- 0 Если на флешке пропали файлы (07.02.2014)
- 0 Opencart: Установка мета тега Keywords для главной страницы через админку (05.12.2013)
- 0 Как изменить часовой пояс на сервере (16.11.2013)
- 0 Ошибка при выполнении команды grunt после обновления OS X 10.9: Bus error: 10. Перестал работать grunt (07.11.2013)
- 0 PHP: Как удалить файлы по маске? (07.11.2013)
- 0 Регулярные выражения в PHP (12.04.2014)
- 0 Как сделать потоковое видео на сайте. (24.10.2013)
- 0 Opencart: война модулей FilterPro mega, Intelligent Product Labels, AStickers - Ajax стикеры (24.10.2013)
- 0 Opencart: Модуль Filter Product OpenCart_v1.5.x: Как скрывать недоступные опции в фильтре (23.10.2013)
- 0 Защита от спама в phpBB3 без капчи (09.10.2013)
- 0 Ошибка xml файла Opencart для Яндекс Маркета: <b>Notice</b>: iconv(): Detected an illegal character in input string... (04.09.2013)
- 0 Php функция implode внутри запроса SELECT к MySQL. (02.09.2013)
- 0 Opencart: Выводить изображения подкатегорий на странице категории. (11.07.2013)
- 0 Opencart: Вывод атрибутов вместо описания в категориях. (23.10.2013)
- 0 Opencart: Обновление движка с версии 1.4.9 до 1.5.1.3! (05.02.2015)
- 0 Защитить сайт или определённую папку паролем с помощью .htaccess (27.05.2013)