Настройка переадресации на https на wordpress
Чтобы настроить переадресацию с HTTP на HTTPS в WordPress, нужно выполнить несколько шагов. Важно понимать, что просто сменить протокол в настройках сайта недостаточно: без редиректа браузер будет показывать ошибку «Mixed Content» (смешанное содержимое), так как все внутренние ссылки останутся с префиксом HTTP.
Подготовка
Перед началом убедитесь, что у вас есть SSL-сертификат (можно бесплатный, например, Let’s Encrypt) и он правильно установлен на вашем хостинге. Также сделайте резервную копию сайта — это спасёт вас в случае ошибки.
Шаг 1. Обновление настроек WordPress
В админ-панели WordPress перейдите в раздел «Настройки» → «Общие». В полях «Адрес WordPress (URL)» и «Адрес сайта (URL)» замените префикс
http://
на
https://
и нажмите «Сохранить изменения». После этого вас разлогинит — войдите заново уже по HTTPS.
Шаг 2. Настройка редиректа
Есть несколько способов настроить редирект.
Через файл .htaccess (для Apache)
Это наиболее надёжный метод, так как редирект работает на уровне сервера. Откройте файл
.htaccess
в корневой папке сайта (через FTP или файловый менеджер хостинга) и добавьте следующий код в самое начало (перед строкой
# BEGIN WordPress
):
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Важный нюанс: если у вас уже есть другие правила редиректа (например, с www на без www), объедините их в один блок.
После сохранения проверьте работу редиректа с помощью инструментов вроде Redirect Checker или HTTP Status.
Через плагин
Это самый простой способ для новичков. Установите и активируйте плагин Really Simple SSL. После активации перейдите в настройки плагина и нажмите кнопку активации SSL. Плагин автоматически обновит
.htaccess
и проверит настройки.
Также можно использовать плагины Easy HTTPS Redirection или Redirection. Они тоже автоматически настраивают редирект и часто имеют встроенные сканеры для исправления «смешанного контента» в базе данных.
Важно: некоторые плагины (например, Really Simple SSL) могут конфликтовать с кэшированием (WP Rocket, LiteSpeed Cache). Убедитесь, что у плагина есть права на запись в
.htaccess
(обычно CHMOD 644).
Через функции в functions.php
Если вы не можете редактировать
.htaccess
, можно добавить код в файл
functions.php
вашей темы. Добавьте следующий код в конец файла (перед закрывающим тегом
?>
):
function enforce_https() {
if (!is_ssl()) {
wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301);
exit();
}
}
add_action('template_redirect', 'enforce_https', 1);
Этот метод менее надёжен, так как зависит от загрузки WordPress.
Через wp-config.php
Если другие способы не подходят, можно добавить код в
wp-config.php
Например:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') {
wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'], 301);
exit();
}
Важно: этот способ создаёт редирект на уровне PHP и менее эффективен, чем на уровне сервера.
Шаг 3. Исправление «смешанного контента»
Даже после настройки редиректа в коде страниц могут остаться ссылки с префиксом HTTP (на изображения, скрипты, стили). Для их поиска и замены удобно использовать плагины, например, Better Search Replace или Search Regex.
Также проверьте ссылки на внешние ресурсы (скрипты с других доменов) — они тоже должны быть приведены к HTTPS.
Шаг 4. Проверка и завершение
После настройки проверьте:
- Цепочку редиректов: убедитесь, что все запросы с HTTP ведут на HTTPS с кодом 301.
- SSL-сертификат: проверьте его валидность с помощью сервисов вроде SSL Checker.
- Консоль браузера: откройте инструменты разработчика (F12) и проверьте, нет ли запросов к HTTP на вашем сайте.
Дополнительно: если вы использовали Яндекс.Вебмастер или Google Search Console, сообщите поисковым системам о смене протокола.
Важные нюансы
- Если сайт работает за обратным прокси или CDN, может потребоваться дополнительная настройка для корректного распознавания HTTPS WordPress.
- После серьёзных изменений очистите кэш плагинов и сервера.
Если у вас остались вопросы по конкретному шагу или вы столкнулись с ошибкой, напишите детали — помогу разобраться!
