В этой записи я хочу затронуть наболевшую тему для владельцев сайтов за последнее время. Google и Яндекс стали принуждать к использованию HTTPS соединения. Возможно вы уже знаете, что если ваш сайт был на HTTP, то перейти на HTTPs не так просто, так как многие ссылки в WordPress записываются в базу и тем самым нужно писать специальные SQL запросы, чтобы их исправить. Здесь и сейчас я распишу безопасный план для миграции вашего сайта на безопасное соединение.
Я не буду описывать как установить SSL сертификат в этой записи, так как информации по этому теме достаточно и многие хостинги абсолютно бесплатно предоставляю такую услугу в один клик. Я лишь опишу процесс перехода с http на https после того как сайт какое-то время просуществовал на http и далее решил перейти на безопасное соединение.
Основные мысли
В роли примера, я буду использовать bologer.ru — мой личный домен, где вы сейчас читаете эту запись. У вас же, конечно, будет собственный домен, который вы самостоятельно замените.
База данных
В базе данных нужно будет все упоминания http://bologer.ru
на https://bologer.ru
. Это нужно сделать во всех таблицах, где есть такое упоминание.
Для начала вам нужно зайти в phpMyAdmin
, открыть базу сайта и нажать на вкладку «Поиск», ввести в поиск http://bologer.ru
(в вашем случае это будет ваш домен) и в конце «ОК» , чтобы запустить поиск.
Далее вы должны увидеть список таблиц где были найдены совпадения. Теперь запишите названия всех таблиц с совпадениями и ниже я покажу SQL запрос, который поможет исправить их.
На примере SQL ниже, я заменяю все упоминания http://bologer.ru
на HTTPs версию, в таблице wp_posts
внутри колонки post_content
.
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, 'http://bologer.ru', 'https://bologer.ru');
В дополнении, у вас могла быть записана www
версия вашего домена, на подобии http://www.bologer.ru
, если вы хотите исправить и это, просто повторите запрос выше в следующем формате:
UPDATE `wp_posts` SET `post_content` = REPLACE(`post_content`, 'http://www.bologer.ru', 'https://www.bologer.ru');
Теперь все что вам нужно сделать — это повторить SQL запросы выше для всех таблиц где есть упоминание домена.
Изменения в .htaccess
В .htaccess
файле, вам нужно будет сделать ещё пару изменений. Этот файл находится в корне вашего WordPress, где лежат папки wp-content
и др.
.htaccess:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
К стандартному .htaсcess
, было добавлено две строки:
RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]
Которые делают редирект c HTTP на HTTPs, если пользователь по какой-либо причине заходит на старую версию сайта.