Перевод сайта на https: 7 раз отмерь, 1 раз отрежь!

13 января 2019, 13:18

Это, вообще, можно сделать? Любой сайт можно перевести на https?

Во-первых, нужно понять возможность перевода сайта на https (рассматриваем самый популярный вариант - бесплатный сертификат Let’s Encrypt). Что может помешать:

проблема: хостинг, на котором размещен сайт, не выдает/не устанавливает такие сертификаты (если еще такие существуют:)

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

проблема: размещено несколько сайтов на одной админке и неосновные домены являются алиасами, для которых выпуск ssl-сертификатов невозможен

решение: для основного сайта выпуск возможен, но необходимо будет воспользоваться видоизмененным редиректом в файле .htaccess для склейки, а для перевода алиаса на защищенный протокол выход один - сделать его НЕ алиасом.

проблема: у домена есть поддомены

решение: нужна возможность выпуска отдельных сертификатов для каждого поддомена ИЛИ выпуск сертификата Wild, который распространяется и на поддомены (не более 99).

проблема: на сайте есть контент, использующий данные с других сайтов, не перешедших на https

решение: ждать пока все сторонние сайты перейдут на защищенное соединение, либо отказаться от этого контента

Ок, выяснили - перевести на https можно. Что дальше? - SSL сертификат

Во-вторых, заказать и установить ssl сертификат:

  • хостинг хороший и дружелюбный - сможете в 1 клик заказать и привязать сертификат к домену (буквально клик на пару кнопок)
  • хостинг или сама ситуация чуть сложнее - закажите ssl сами (сервисов полно) и загрузите на хостинг (новичкам лучше не пробовать сделать это самим).

Если сайт представляет собой интернет-магазин, то бесплатный сертификат не подойдет.

И это все, мой сайт уже на https? - Нет! Самое сложное впереди... Настраиваем сайт на работу

В-третьих, настроить сайт на работу по новому протоколу и корректную обработку ссылок.

Чек-лист перевода сайта на https:

Настройки административной панели для перехода на https протокол: тут время и сложность зависит от админки (где-то пара кнопок, где-то чуть больше). Для MODX REVO две системные настройки link_tag_scheme (значение - 1) и server_protocol (значение - https), внимательно с контекстами (! если используете несколько контекстов, то поменять настройки каждого контекста на https).

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

Вариантов правил склейки несколько (решается методом проб и перебора :). Нужен доступ к файлу .htaccess по ftp или через хостинг, чтоб отменять в случае неудачи), наиболее часто используемые:

Вариант 1

RewriteCond %{HTTPS} =off

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Вариант 2 (!)

RewriteCond %{SERVER_PORT} !^443$

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 3

RewriteCond %{ENV:HTTPS} !on

RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Вариант 4 (!)

RewriteCond %{HTTP:X-HTTPS} !1

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Вариант 5

RewriteCond %{HTTP:CF-Visitor} '"scheme":"http"'

RewriteRule ^(.*)$ https://www.domain.com/$1 [L]

#не забудьте заменить на ваш домен

Вариант 6

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https

RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Вариант 7.

RewriteCond %{HTTP:X-Forwarded-Proto} !https

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

Как делать не надо в htaccess

Далее, все стили, скрипты, шрифты должны грузиться через https. Нужно проверить и исправить, как вариант - скачать на сайт и грузить их локально.

Если есть абсолютные внутренние ссылки заменить их на относительные (без указания протокола и домена).

Все внешние ссылки заменить на безпротоколовый вариант (начинать с //, например href=”//a-tum.ru”). К сожалению, при этом (замечено на modx) ссылки открываются через протокол https и если его нет на внешнем сайте, то попадаем на ошибку. - Если кто знает как бороться с этим, не навредив протоколу, поделитесь с нами :) !!!!!!

Проверить файлы robots.txt и sitemap.xml (везде должен быть https протокол).

Скинуть кеш сайта.

Полностью проверить работоспособность сайта (все ли страницы корректно открываются, отправляются ли формы, работают ли скрипты, калькуляторы и т.п., личный кабинет, интернет-магазин, онлайн-оплата и т.д.)

Ааааааа.... как же мои позиции в ТОПе? - Спокойствие! Все в порядке

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

  • Еще раз проверить файлы robots.txt (директива host) и sitemap.xml
  • Добавить сайт с https в Яндекс.Вебмастер
  • Включить переезд на https в панели Яндекс.Вебмастер для сайта с http
  • Добавить сайт с https в Google Console
  • В настройках Google Analytics поменять в адресе сайта на https
  • После добавления в Яндекс.Вебмастер и Google Console сайта с https проверить доступность и корректность sitemap.xml
  • По возможности заменить внешние ссылки (из соцсетей, в каталогах, Яндекс.Справочник и т.д.) на ссылки с https и в дальнейшем учитывать это при размещении новых ссылок.

Что делать в случае "У меня не получилось" или "Да вы гоните"?

Пишите на почту, вконтакте, звоните :)

Будем разбираться и решать вопросы вместе!

 

Теги
Просмотров: 44

Контакты

Хотите узнать стоимость и сроки создания сайта?
Опишите свой вопрос, укажите контакты, и мы свяжемся с Вами в течение дня!

ООО «Студия «Атум»

ИНН 4345360019, ОГРН 1134345014187

Киров Профсоюзная, 1 БЦ «Кристалл» (301)

8 (912) 710 29 09 - Телефон / Viber / Telegram / iMessage

web@a-tum.ru

Иконка ВКонтакте полупрозрачная

Вы не указали, как к вам обратиться

С email что-то не так!

Вы хотели отправить пустое сообщение?

Арифметическая ошибка!

home-button
Получите быстрый ответ