Сайт редиректит на другой домен: причины, диагностика и исправление
Дата публикации: 5 июня 2026
Дата обновления: 5 июня 2026
Автор: Александр, технический специалист WordPress
Ситуация: вы открываете свой сайт на WordPress, а он мгновенно перенаправляет (редиректит) на совершенно другой, часто незнакомый или подозрительный домен. Это одна из самых пугающих проблем для владельцев сайтов, и она требует немедленного вмешательства. В этой статье разберём две основные причины — взлом и неправильные настройки базы данных — и дадим пошаговую инструкцию, как вернуть сайт под контроль.
Почему сайт редиректит на другой домен?
В 99% случаев причин две:
- Взлом (хак-редирект) — злоумышленник внедрил вредоносный код, который перенаправляет посетителей на сторонний ресурс (рекламный сайт, фишинговую страницу или сайт с вредоносным ПО).
- Неверные значения
siteurlиhomeв таблицеwp_options— частая ошибка при переносе сайта на новый домен, смене доменного имени или восстановлении из бэкапа.
Разберём каждую причину подробно.
Причина 1. Взлом (хак-редирект)
Это самая опасная причина. Сайт был взломан, и злоумышленник добавил код, который срабатывает при загрузке страницы. Хак-редиректы бывают «умными» — они перенаправляют не всех посетителей, а только определённые категории (например, только с Google, только с мобильных устройств, только раз в N часов). Это делает их труднообнаружимыми.
Где искать вредоносный код
1. Файлы темы (functions.php)
Самый популярный способ — добавить редирект в functions.php активной темы. Злоумышленник может вписать код в начало файла, замаскировав его под легитимную функцию.
// Пример вредоносного кода в functions.php
add_action('init', 'malicious_redirect');
function malicious_redirect() {
if (!is_admin()) {
wp_redirect('https://xn--bad-site-xxx.com');
exit;
}
}
Что делать: откройте wp-content/themes/ваша-тема/functions.php в редакторе (через админку или FTP) и проверьте первые 10-20 строк. Любой wp_redirect() без вашего ведома — подозрителен.
2. Файл .htaccess
Apache-серверы используют .htaccess для правил редиректа. Злоумышленник может дописать правило, которое перехватывает весь трафик.
# Пример вредоносного редиректа в .htaccess
RewriteCond %{HTTP_USER_AGENT} !^.*(bot|crawl|spider).*$ [NC]
RewriteRule ^(.*)$ https://xn--bad-site-xxx.com/$1 [R=302,L]
Что делать: откройте .htaccess в корне сайта. Ищите строки с чужими доменами. Если не уверены — временно переименуйте файл в .htaccess_backup. Стандартный .htaccess WordPress очень прост и безопасен.
3. Инфицированные плагины
Пиратские (nulled) плагины или давно не обновляемые — самый частый вектор атаки. Вредоносный код может быть глубоко в файлах плагина, зашифрован или обфусцирован.
Что делать: отключите все плагины через админку или переименовав папку wp-content/plugins/. Если редирект пропал — включайте плагины по одному, пока не найдёте виновника.
4. База данных — опции и пост-контент
Иногда вредоносный код лежит в wp_options (например, в widget_text или theme_mod) или внутри самих постов (через JavaScript-вставки).
SELECT * FROM wp_options WHERE option_value LIKE '%xn--bad-site%';
SELECT * FROM wp_posts WHERE post_content LIKE '%xn--bad-site%';
Как полностью очистить сайт от взлома
- Смените все пароли — админ WordPress, FTP/SFTP, база данных, хостинг-панель.
- Обновите всё — ядро WordPress, все плагины и тему до последних версий.
- Удалите подозрительных пользователей — проверьте список пользователей в админке (Пользователи → Все пользователи). Удалите незнакомых админов.
- Установите плагин безопасности — Wordfence, Sucuri Security или Solid Security для полного сканирования.
- Восстановите из бэкапа — если есть чистый бэкап до заражения, это самый надёжный способ.
Причина 2. Неверные значения siteurl и home
Если вы недавно переносили сайт на новый домен, восстанавливали из бэкапа на другой адрес или меняли доменное имя — проблема почти наверняка в настройках базы данных, а не во взломе.
Что такое siteurl и home?
В таблице wp_options хранятся две ключевые записи:
siteurl(option_name = ‘siteurl’) — адрес, по которому WordPress обращается к своим файлам (ядро, темы, плагины).home(option_name = ‘home’) — адрес, который видят посетители (главная страница сайта).
Если после переноса на новый домен вы забыли обновить эти значения, WordPress будет редиректить на старый адрес.
Как исправить (4 способа)
Способ 1: Через phpMyAdmin (самый надёжный)
Зайдите в phpMyAdmin на хостинге, выберите базу данных сайта, откройте таблицу wp_options (префикс может отличаться — wp2_options, site_options и т.д.).
Найдите строки с option_name = 'siteurl' и option_name = 'home'. Измените их значения на правильный домен:
| option_name | option_value |
|---|---|
| siteurl | https://ваш-правильный-домен.ru |
| home | https://ваш-правильный-домен.ru |
⚠️ Важно: URL должен быть без слеша в конце. Правильно:
https://example.com. Неправильно:https://example.com/.
Способ 2: Через WP-CLI (если есть доступ по SSH)
wp option update siteurl 'https://ваш-правильный-домен.ru'
wp option update home 'https://ваш-правильный-домен.ru'
Способ 3: Через wp-config.php (экстренный)
Добавьте в файл wp-config.php перед строкой /* That's all, stop editing! Happy blogging. */:
define('WP_HOME', 'https://ваш-правильный-домен.ru');
define('WP_SITEURL', 'https://ваш-правильный-домен.ru');
После этого зайдите в админку, перейдите в Настройки → Общие и сохраните их ещё раз (это запишет правильные значения в базу). Затем удалите эти строки из wp-config.php.
Способ 4: SQL-запрос напрямую
UPDATE wp_options SET option_value = 'https://ваш-правильный-домен.ru' WHERE option_name = 'siteurl';
UPDATE wp_options SET option_value = 'https://ваш-правильный-домен.ru' WHERE option_name = 'home';
Дополнительные проблемы после смены домена
Даже после исправления siteurl и home на новом домене могут остаться ссылки на старый домен внутри контента (в статьях, медиафайлах, произвольных полях). Для массовой замены используйте плагин Better Search Replace или SQL:
UPDATE wp_posts SET post_content = REPLACE(post_content, 'https://старый-домен.ru', 'https://новый-домен.ru');
UPDATE wp_postmeta SET meta_value = REPLACE(meta_value, 'https://старый-домен.ru', 'https://новый-домен.ru');
Как отличить взлом от конфигурационной ошибки
| Признак | Взлом | Ошибка в siteurl/home |
|---|---|---|
| Редиректит на посторонний домен | ✅ Да | ❌ Нет (редиректит на старый свой домен) |
| Редиректит не всегда, а с условиями | ✅ Часто | ❌ Всегда |
| В админку зайти можно | ❌ Может быть | ✅ Обычно можно (через прямой URL /wp-admin) |
| Сайт переносили недавно | ❌ Редко | ✅ Почти всегда |
| В коде есть подозрительные вставки | ✅ Да | ❌ Нет |
Если хотя бы на один вопрос ответили «Да» в колонке «Взлом» — начинайте с проверки на вредоносный код.
Профилактика
Чтобы проблема не повторилась:
- Регулярные бэкапы — файлов и базы данных. Автоматизируйте через плагин (UpdraftPlus, BlogVault) или на уровне хостинга.
- Своевременные обновления — включите автообновления для ядра WordPress.
- Надёжные пароли — используйте менеджер паролей и двухфакторную аутентификацию.
- Проверенные плагины — только из официального репозитория WordPress.org, никаких nulled-версий.
- Мониторинг — подключите сервис вроде Sucuri SiteCheck для регулярной проверки на вредоносный код.
Резюме
Если ваш сайт редиректит на незнакомый домен — сначала проверьте .htaccess и functions.php на вредоносный код. Если редиректит на старый домен после переноса — обновите siteurl и home в таблице wp_options через phpMyAdmin или WP-CLI. В любом случае не паникуйте: обе проблемы решаемы, а своевременный бэкап — ваша лучшая страховка.
