Редирект с www на главное зеркало сайта
Это можно сделать несколькими способами:
1. Через .htaccess (рекомендуется)
Добавьте в .htaccess перед WordPress правилами:
# Редирект с www на non-www
RewriteEngine On
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
# Или если у вас без SSL:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
2. В WordPress через wp-config.php
Добавьте в wp-config.php (перед строкой «That’s all, stop editing!»):
define('WP_HOME', 'https://ваш-домен.ru'); define('WP_SITEURL', 'https://ваш-домен.ru');
3.Редирект с www на главное зеркало Через functions.php вашей темы
Добавьте в functions.php:
// Редирект с www на non-www add_action('init', function() { if (strpos($_SERVER['HTTP_HOST'], 'www.') === 0) { wp_redirect('https://' . substr($_SERVER['HTTP_HOST'], 4) . $_SERVER['REQUEST_URI'], 301); exit; } });
4. Решения для Mixed Content
A. В functions.php добавьте:
// Замена http на https в контенте function force_https_content($content) { if (is_ssl()) { $content = str_replace('http://', 'https://', $content); } return $content; } add_filter('the_content', 'force_https_content'); add_filter('widget_text', 'force_https_content'); // Принудительное использование HTTPS для всех URL function force_https() { if (is_ssl()) { ob_start(function($buffer) { return str_replace('http://', 'https://', $buffer); }); } } add_action('init', 'force_https');
B. Плагины для решения проблемы mixed content:
- Really Simple SSL — автоматически исправляет mixed content
- SSL Insecure Content Fixer
- Better Search Replace — для массовой замены URL в базе данных
C. Замена URL в базе данных:
Выполните SQL запрос (сделайте backup!):
UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://www.ваш-домен.ru', 'https://ваш-домен.ru'); UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'http://www.ваш-домен.ru', 'https://ваш-домен.ru'); UPDATE wp_options SET option_value = REPLACE(option_value, 'http://www.ваш-домен.ru', 'https://ваш-домен.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
D. Дополнительно в wp-config.php:
// Принудительный HTTPS для админки и сайта define('FORCE_SSL_ADMIN', true); if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $_SERVER['HTTPS'] = 'on'; $_SERVER['SERVER_PORT'] = 443; }
Порядок действий при mixed content:
- Сначала настройте редирект через
.htaccess - Обновите URL в настройках WordPress (Настройки → Общие)
- Исправьте mixed content через плагин или код
- Проверьте редирект и SSL на SSL Labs
- Добавьте сайт в Google Search Console с обоими вариантами домена
После настройки проверьте:
- Все ли страницы редиректят правильно
- Нет ли ошибок mixed content в консоли браузера
- Работает ли HTTPS (зеленый замок)