Давно перевожу все сайты на https. На днях опять встала задача переноса очередного сайта на Wordpress. Пишу по свежей памяти актуальную инструкцию по переезду.


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


Что нам нужно иметь, чтобы осуществить задуманное:


  • Доступ в панель управления доменом
  • Доступ в админ панель нашего сайта на wordpress
  • 15 минут свободного времени.

Поехали


Сначала сделайте резервную копию всего сайта и базы данных!


Сначала нам необходимо зарегистрироваться на сервисе Cloudflare.com. Далее добавляем свой сайт в форму «Set Up Websites» и жмем «Begin Scan». Сервис начнет сканирование dns-записей домена. Обычно все проход нормально и CloudFlare сам находит все записи, но в моем случае этого не произошло :) Скорее всего как-то криво хитро был настроен сервер хостера. Хоть через сервисы DNS Look up все было видно, CloudFlare не справился. Но не беда. Домен-то наш, и мы в курсе что там с ним должно происходить.


Как минимум у Вас должна быть запись вида:

A domain.ru 000.000.000.000

где А – тип записи, domain.ru – имя вашего домена без www, 000.000.000.000 – ip адрес вашего сервера (обычно можно пингануть первый Name server – ns1.reg.ru или ns1.nic.ru в зависимости от вашего хостинга – в windows пуск – выполнить – cmd /k ping ns1.nic.ru)


Эту запись можно добавить вручную.


Если у вас подключена почта Яндекса для домена, то не забудьте добавить MX запись. Для добавления алиаса “www” добавьте запись:


CNAME www domain.ru

где domain.ru – заменить на ваш домен.


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


Заходим в панель управления доменом – изменение DNS записей (DNS-сервера) и меняем старое значение на те, что сказал нам CloudFlare.


Возвращаемся в CloudFlare, переходим на наш сайт, вкладку «Crypro» и в первом пункте «SSL» выбираем «Flexible»


Далее идем в админку Wordpress – Плагины – Добавить новый. Устанавливаем и активируем 3 новых плагина:


  • Cloudflare – управление некоторыми настройками облака из админки Wordpress
  • CloudFlare Flexible SSL – фикс бага зацикливания перенаправления Wordpress
  • Better Search Replace – поиск и замена текста в базе Wordpress

Плагин Cloudflare


Выбираем плагин в меню Настройки – CloudFlare. Необходимо ввести адрес почты, которую вы указали при регистрации в CloudFlare и API сервиса. API берем на сайте CloudFlare.com. Кликаем в верхнем правом углу на свое имя – My settings — Global API Key – View API Key. Копируем, вставляем в Wordpress. Плагин авторизуется, далее вам нужно нажать всего одну кнопку в первом пункте «Apply Default Settings» — «Apply»


Плагин Better Search Replace


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


Выбираем плагин в меню Wordpress Инструменты — Better Search Replace. В поле «Искать» вводим «http://» без кавычек, а в поле «Заменить на» — «https://» без кавычек. Выбираем все таблицы, ставим галку «Без учета регистра», снимаем галку «Холостой запуск? (без замены)», жмем «Запустить Поиск/Замену». Таким образом мы заменим все ссылки старого протокола на новый в меню, материалах, настройках плагинов, везде.


Финальный штрих.


Заходим в настройки Wordpress – Общие и меняем «Адрес WordPress (URL)» и «Адрес сайта (URL)» с … На … (без троеточия, значения остаются ваши, нужно в этих полях к http добавить букву «s»)


Готово. Как только обновятся dns-записи на серверах провайдеров (до 48-часов), ваш сайт будет работать через https!

Поделиться с друзьями
-->

Комментарии (11)


  1. ZoomLS
    17.02.2017 18:51
    +2

    Трафик от CloudFlare до сайта пойдёт по http. Это не настоящий https, а суррогат какой-то.
    Лучше взять Lets Encrypt и сделать нормальный https.


    1. Lda
      17.02.2017 18:54

      Да, суррогат, можно все айпи скрыть в облаке.
      И да, лучше устанавливать Full SSL, но нужно иметь доступ к установке ssl-сертификата на сервер.


  1. alexxxst
    17.02.2017 21:15
    +2

    ip адрес вашего сервера (обычно можно пингануть первый Name server – ns1.reg.ru или ns1.nic.ru в зависимости от вашего хостинга – в windows пуск – выполнить – cmd /k ping ns1.nic.ru)

    Что это за бред?


  1. delfi
    17.02.2017 21:35

    И вот мы выполнили шаг «В поле «Искать» вводим «http://» без кавычек, а в поле «Заменить на» — «https://» без кавычек.» и с ужасом вспомнили, что у нас есть ссылки на внешние сайты, изображения…


    1. Lda
      17.02.2017 21:36
      +1

      Оу, вот я деревяшка)
      Не моя ситуация просто)
      Поправил пост, спасибо!)


  1. web2033
    17.02.2017 22:53

    Хм, сильно мою прошлогоднюю статью напоминает)
    https://echo.web2033.com/wordpress-http-https-cloudflare/


    1. Lda
      17.02.2017 23:53

      Искал на Хабре, похожих не видел, по крайней мере в начале результатов поиска)
      Напоминает Вашу, т.к. это стандартный туториал и все этот переезд выполняют именно так))))


  1. EvilMushroom
    17.02.2017 23:53

    А как же индексация и всё такое прочее? Ведь для поисковиков http://domain.tld и https://domain.tld разные сайты ?!


    1. Lda
      17.02.2017 23:53

      Да, поисковикам нужно отдельно сообщить о переезде в панелях вебмастера.


    1. ivan386
      18.02.2017 15:53

      Даже для CF это разные сайты и кешат их отдельно.


  1. nikitasius
    18.02.2017 02:28

    Чтобы не ждать 2х дней обновления ДНС, надо выставить TTL 300 (5 минут), тогда переедете за несколько часов в худшем случае.

    Сейчас Cloudflare умеет кешировать на время для public, указанное в max-age и игнорить кеш private с max-age=0 при правильных настройках. Фактическо можно закинуть любой сайт за cloudflare без плагигов, достаточно лишь отдавать админку как «private, max-age=0», а прочий контент с нужным вам TTL (1 секунда или 2 часа и т.п.).