Артём Мáлков

Как правильно перенести свой сайт на WordPress на безопасный протокол HTTPS?

17 янв2 комм

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

В последнее время в моду вошла безопасность, а именно – защищенный протокол HTTPS.

Именно поэтому сегодня я покажу свой на 100% рабочий способ переноса вашего сайта на этот протокол.

Вообще существуют несколько типов SSL-сертификатов, бесплатные и платные. Если у вас серьезная организация, которая ведет коммерческую деятельность в Интернете – вам определенно нужно ставить платный сертификат (цена такого сертификата варьируется в районе от 1 000 до 100 000 рублей), так как он подтверждает ваши ИП или другие данные.

Если же у вас небольшой форум или сайт по типу нашего – вам вполне хватит и бесплатного сертификата. Самый популярный из таких – Let’s Encrypt.

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

Я же расскажу, что нужно сделать после того, как вы подключили тот или иной сертификат к своему сайту.

Итак, начнем.

1. Для начала вам необходимо зайти в панель управления сайтом, раздел «Настройки», пункт «Общие»:

Как правильно перенести свой сайт на WordPress на безопасный протокол HTTPS?

Здесь вам необходимо в графы «Адрес WordPress (URL)» и «Адрес сайта (URL)» записать адрес вашего сайта с HTTPS-протоколом.

По завершении в конце страницы жмете «Сохранить изменения».

2. Затем делаем два SQL-запроса к вашей базе данных. Подробнее об этом написано здесь.

Первый запрос – это:

UPDATE wp_posts SET post_content = REPLACE (post_content, "http://your_site.ru', "https://your_site.ru');

С помощью него мы меняем адреса у всех изображений в ваших записях. И второй:

UPDATE wp_usermeta SET meta_value = REPLACE (meta_value, "http://your_site.ru', "https://your_site.ru');

С помощью него мы меняем адреса у аватаров пользователей.

3. Далее настраиваем файл robots.txt, который лежит в корне вашего сайта. Здесь вы правите директиву «Host». И если раньше у вас было что-то вроде:

Host: your_site.ru

Вы всю строку меняете на:

Host: https://your_site.ru

Не забывайте «your_site.ru» изменить на доменное имя вашего сайта. Здесь же вы проставляете корректные ссылки до карты сайта (sitemap). И если раньше у вас было:

Sitemap: http://your_site.ru/sitemap.xml.gz
Sitemap: http://your_site.ru/sitemap.xml

То теперь у вас должно быть:

Sitemap: https://your_site.ru/sitemap.xml.gz
Sitemap: https://your_site.ru/sitemap.xml

Отлично, сохраняем файл robots.txt и отправляем его обратно на сайт.

4. После этого вам необходимо настроить 301 редирект с HTTP на HTTPS. В WordPress это делается несколькими способами.

Первый способ – это через файл .htaccess, который находится в корне вашего сайта. Открываете его и вставляете либо этот код:

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

А если он не работает, то этот:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /(.*) HTTP/ [NC]
RewriteCond %{HTTPS} off [NC]
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}%{QUERY_STRING} [R=301,QSA,L]

Либо этот:

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

Все коды пишутся сразу после «RewriteEngine On».

Второй способ – это через файл функции. Открываете файл functions.php, который находится в папке /wp-content/themes/ваша_тема/, и в самый низ вставляете:

function redirect_http_to_https() {

	if(is_ssl()) {
		
		return;
		
	}

	if(0 === strpos($_SERVER["REQUEST_URI"], "http")) {
	
		wp_redirect(set_url_scheme($_SERVER["REQUEST_URI"], "https"), 301);
		
	} else {
	
		wp_redirect("https://".$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"], 301);

		exit();
		
	}
	
}

add_action("init", "redirect_http_to_https");

Сохраняете изменения в обоих случаях и отправляете файлы обратно на сайт.

5. И завершающим, весьма кропотливым пунктом, будет следующее. Вы открываете папку вашей темы сайта в FTP (а еще лучше – выгружаете ее к себе на компьютер) и везде, где есть ссылки на файлы (изображения, скрипты и прочее) без https, вы прописываете с https.

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

Все изменения нужно проделать как в PHP-, так и в CSS-файлах.

После того, как вы проделаете все шаги – очистите кэш на сайте (если, конечно, на вашем сайте установлен какой-либо плагин кэша), затем чистите кэш браузера.

Если вы все сделали правильно, то, посетив свой сайт в адресной строке, вы обнаружите примерно такой зеленый замок:

Как правильно перенести свой сайт на WordPress на безопасный протокол HTTPS?

Это говорит о том, что вы успешно перенесли ваш сайт на защищенный HTTPS-протокол. Если у вас нет замка, замок имеет восклицательный знак или сайт после всех правок вовсе не открывается – пишите об этом в комментариях, я постараюсь вам помочь.

Рекомендуем к просмотру
Новые правила перехода в следующую группу, исправление ряда ошибок и другие изменения в личных страницах
Блог
Установка бесплатного сертификата от Let’s Encrypt на сайт с сервером CentOS 6 + ISPmanager 4 + Nginx + Apache
Статьи и советы
Как перенести сайт на WordPress на другой хостинг?
Статьи и советы
2
комментария
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
    • 1
    1066
      •  Команда Pandoge
    3 сен в 03:34

    5 пункт можно заменить установкой плагина Really Simple SSL. Но если не доверяете плагинам, то переводите все ссылки на HTTPS в ручном режиме.

    • 1
    1066
      •  Команда Pandoge
    4 июл в 01:17

    Статья обновлена.

    Изменена последовательность шагов.

Подняться наверх
«Pandoge» - помощник вебмастера