Правильный переезд с http на https для сайта на WordPress. Подводные камни при переходе с http на https.

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

Друзья, всем привет. Написать эту статью меня вдохновили те подводные камни, которые появились, перевести сайт когда я решил capitan-seo.com с протокола http на https. Дело в том, что в сети полно информации о переезде с http на https для wordpress, но эта инфа разбросана кусками и многое из того, что советовали, работало частично или не работало вообще. Поэтому в данной статье я решил описать способ по переходу сайта с http на https, который я применил на свое сайте.

Для настройки https на сервере надо выполнить следующие шаги

1. Приобрести ssl сертификат и подключить его к вашему хостингу. Как вариант ваш хостинг уже может поддерживать ssl, в любом случае после приобретения ssl сертификата, вам необходимо написать в тех поддержку хостинговой компании, что бы, купленный вами сертификат, был настроен под ваш хостинг. Например, я покупал ssl сертификат в компании abc-server.com

Для подключения сертификата вам нужен будет сам сертификат и privat key. Если будет ясно где их взять, пишите комментарий, я подскажу или звоните спрашивайте.

2. Включить ssl в файле сайта wp-config.php. Для этого вам необходимо добавить $_SERVER[‘HTTPS’] = ‘on’;

 

$_SERVER['HTTPS'] = 'on' wp-config

И добавить, под другими defline:

define(‘FORCE_SSL_ADMIN’, true);
define(‘FORCE_SSL_LOGIN’, true);
if (strpos($_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’) !== false)
$_SERVER[‘HTTPS’]=’on’;

У меня это сделано так:

wp-config настройки для ssl

3. Используем плагин Better Search Replace (официальный сайт и ссылка для скачивания на worpdress.org ) для того, что бы все урлы в базе данных поставить с https. Для этого устанавливаем его, по аналогии как и другие плагины (см. выше), затем переходим в раздел «Инструменты», «Better Search Replace»

 width=

Указываем с какого на какой url будем менять, в моем случае это с http://capitan-seo .com на https://capitan-seo.com и выбираем все таблицы нашей базы данных, зажав кнопку «Shift»
Устанавливаем флажки напротив пунктов: «Без учета регистра» и «Замена GUID» и снимаем галочку с «Холостой запуск? (без замены)» и запускаем

 width=

4. Включить полноценную работу https, и для этого я использовал плагин really simple ssl (официальный сайт) и ссылка для скачивания на wordpress.org  (как будет без него, я указал ниже в разделе про подводные камни с которыми я столкнулся).

Для того, что бы плагин увидел ssl на сайте, надо заходить по адресу https://вашсайт.com

Установка и настройка плагина:

Установка:

  • В меню админ панели сайта наводим на пункт «Плагины» и нажимаем «Добавить»
    Добавить really simple ssl

 

  • В поиск среди новых плагинов вбиваем really simple ssl , затем нажимаем установка плагина и активируем его
    Установить и активировать really simple ssl

В моем случае плагин уже установлен, поэтому пишет «Активен»

Активировать really simple ssl

 

Настройка плагина:

  • Переходим в раздел «Плагины», «Установленные» и нажимаем настроить установленный нами really simple ssl

 width=

 width=

 

В разделе Configuration включаем ssl (у меня уже нажата кнопка в данном случае).

 width=

 

В разделе Настройки Нажимаем все галочки как на рисунке!

 width=

 

5. Переходим в раздел «Настройки» «Общие» и проверяем, что бы урлы были на https, если по каким то причинам это не так, то вбиваем url вашего сайта на https, для того, что бы ваш сайт работал на https

 

 width=

 width=

 

6. Редактируем файл .htaccess для настройки редиректа с http на https:

Важно, если у вас действует связка nginix+apache и редирект на https идет через nginix, то этот код (и подобные другие) вызовет у вас циклическую переадресацию.

 width=

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

 

В других случаях, вам надо добавить этот кусок кода в htaccess

Вариант 1

RewriteEngine On
RewriteCond %{HTTPS} =off 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

Вариант 2

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

Вариант 3

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Еще есть плагин Easy HTTPS Redirections

 

Вуаля, вы получите полностью рабочий сайт на https протоколе, и даже если пользователь нажмет на ссылку вида http://site.com его перенаправит на https://site.com. Это важный пункт, т.к. технически, для поисковых систем – это две разные версии сайта, и для того, что бы поисковики понимали, что это один и тот же сайт, делается редирект c http на https.

 

Теперь остались последние шаги, а именно:

 

  1. Пересобрать sitemap.xml, что бы в ней все url были с https
  2. В файле robots.txt указать директивы host и sitemap с https Пример:

 width=

 

  1. Для Google Webmaster – необходимо снова добавить ресурс и подтвердить права владения на него (как раньше вы делали для обычного сайта)
  2. Google Analytics – в настройка представления и ресурса указать url сайта с https

 width=

 

  1. Yandex Webmaster указываем что сайт на https (снова подтверждать как у Google сайт не требуется)

Заходите в раздел «Индексирование» «Переезд сайта»
Указываете, что сайт с https и нажимаете сохранить
Если все хорошо, то увидите надпись «В ближайшее время в результатах поиска вместо домена capitan-seo.com появится https://capitan-seo.com.»

 width=

 

  1. Yandex Metrika – изменений вносить не надо, на удивление, яндекс метрика определит ваш протокол.

 

Подводные камни, с которыми я столкнулся во время переезда:

  1. Really simple ssl не видит сертификат – дело в том, что пока я не внес записи в wp-config этот плагин не видел сертификат. А без этого плагина https на сайте работает коряво, и примерно так:
     width=
  2. Не все url базе данных изменены с http на https, в результате чего, слетают стили, не отображаются изображения, был недоступен файл robots.txt и т.д. Для этого мы использовали плагин Better Search Replace
  3. В результате не верных редиректов в .htaccess постоянная циклическая переадресация. Дело в том, что редирект c http на https нужен, что бы поисковики понимали, что мы переехали с http на https, поисковик решит, что это 2 дублирующих друг друга сайта и накажет обоих (скорее всего), в результате чего сильно упадет посещаемость сайта. В результате я часа 2 потратил, что бы найти рабочий вариант редиректа с http на https в htaccess. 

 

В принципе это основные моменты, с которыми я столкнулся при переезде сайта с http на https. Пишите свои комментарии. Спасибо за ваше внимание друзья!

9 thoughts on “Правильный переезд с http на https для сайта на WordPress. Подводные камни при переходе с http на https.

  • Юлия

    Здравствуйте! Спасибо за хорошую статью. Можете подсказать, почему после всех манипуляций с переходом на http в браузере стоит “Не защищено”, при этом в консоли ошибок нет?

    Reply
    • admin Post author

      Насколько я понял при переходе на https. Возможно у вас не все изображения (частая ошибка) переведены на https протокол.

      Reply
  • Дмитрий

    Добрый день! Спасибо большое за подробный мануал!!!
    Буду признателен за несколько уточнение,

    simple ssl пишет The mixed content fixer is active, but was not detected on the frontpage. Please follow these steps to check if the mixed content fixer is working

    Но при переходе на сайт пишет “защищено”, не обращать на надпись внимания?

    И основное, после переезда плагины можно удалять?

    Спасибо!

    Reply
    • admin Post author

      Кроме simple ssl, остальные можете удалить

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

      Reply
  • Андрей

    Большое спасибо Вам за отличную статью! Я уже просто запарился искать варианты перехода, а Ваша статья прямо в точку)))))) Без лишней воды и спама))))) Всего Вам наилучшего!!!

    Reply
  • Marina Zemina

    Здравствуйте! ___123___Правильный переезд  с http на https для сайта на wordpress. Подводные камни при переходе с http на https. | Бортовой журнал | Capitan-SEO___123___

    Reply
  • Илья

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

    Reply
    • admin Post author

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

      Reply

Оставьте Ваш комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *