Сайт сам перенаправляет на другой адрес: как отключить редирект
Что это значит
Вы открываете один адрес, а браузер сам переходит на другой: на версию с www или без, на https, на мобильный поддомен, на страницу другого языка или вообще на чужой сайт. Это редирект (перенаправление). Его включает CMS, правило на сервере, плагин или вредоносный код, а иногда браузер просто помнит старое перенаправление.
Чем мешает
Нужный редирект (http → https, www → без www) полезен, если он один и постоянный. Лишний мешает: посетитель не попадает на нужную страницу, поисковик видит не тот адрес, а редирект на чужой сайт — признак взлома, за который поисковики помечают сайт как опасный.
Почему сайт перенаправляет на другой адрес
- Настройки CMS: главный адрес сайта (главное зеркало) указан другой, или включено перенаправление по языку браузера либо по региону посетителя.
- Правила на сервере:
.htaccessу Apache,return 301илиrewriteв nginx, перенаправление в панели хостинга, в DNS-сервисе или Cloudflare. - Мобильная версия на отдельном адресе (например,
m.example.by): телефоны уводит туда правилом по типу браузера. - Правила http → https и www → без www (или наоборот). Они нужны, но должны вести одним постоянным 301 — подробнее в статье «Сайт открывается с www и без www».
- Плагины перенаправлений, SSL, SEO-плагины и кеширующие плагины со своими правилами.
- Вредоносный (вирусный) редирект: код, который подложили на сайт, уводит посетителей на чужие сайты.
- Кеш браузера: однажды увидев постоянный 301, браузер повторяет его сам, даже когда правила на сайте уже нет.
Если адрес меняется несколько раз подряд, это цепочка — как свести её к одному шагу, читайте в статье «Цепочка редиректов». Если редирект временный (302 или 307), а должен быть постоянным, — в статье «Редирект 302 вместо 301».
Признаки вирусного редиректа и как его проверить
- Сайт уводит на чужой домен (казино, знакомства, «вы выиграли», подписки на уведомления), а вы такого не настраивали.
- Редирект срабатывает только при переходе из поиска, а если ввести адрес вручную или открыть закладку — нет. Или только на телефоне, а на компьютере сайт открывается нормально.
- Срабатывает не каждый раз: например, при первом заходе, а потом сайт открывается как обычно. Владелец, который часто заходит на сайт, может редирект вообще не видеть.
- Проверьте без браузера: повторите запрос curl с телефонным User-Agent и переходом из Яндекса (пример выше) и сравните с обычным. Если ответы разные и в
Location:чужой адрес — правило подложено. - Ищите код: в
.htaccess— условияHTTP_REFERERилиHTTP_USER_AGENTс редиректом на чужой адрес; вindex.php, файлах темы (например,header.php,functions.php) и в базе — незнакомые скрипты и закодированные строки (eval,base64_decode). Для WordPress просканируйте сайт плагином безопасности, например Wordfence. - После очистки смените все пароли, обновите CMS, тему и плагины. Проверьте Яндекс Вебмастер («Диагностика → Безопасность и нарушения») и Google Search Console («Проблемы безопасности»).
Если не уверены, что нашли всё, отдайте сайт на очистку специалисту или хостингу: вредоносный код часто прячут в нескольких местах сразу.
Как проверить, куда и почему уводит сайт
- Запустите проверку на yasnoseo.by: она открывает сайт как робот поисковика и показывает, если главная уводит на другой адрес, временным редиректом или цепочкой.
- Выполните
curl -sIL https://ваш-сайт/ | grep -iE '^(HTTP|location)': увидите каждый шаг — код ответа и адрес, куда ведёт следующий. - Сравните с тем, что показывает браузер. Если curl не перенаправляет, а браузер перенаправляет, откройте адрес в режиме инкогнито: дело, скорее всего, в кеше браузера или в правиле, которое срабатывает только для обычных посетителей.
- Повторите curl с телефонным User-Agent и переходом из поиска. Разница с обычным ответом — признак мобильной версии или вирусного редиректа.
Как исправить
WordPress
- Откройте «Настройки → Общие» и сравните поля «Адрес WordPress (URL)» и «Адрес сайта (URL)». В них должен быть один и тот же главный адрес. Если там чужой домен или старый адрес, WordPress будет уводить туда.
- Посмотрите плагины перенаправлений и SSL (Redirection, Really Simple Security, SEO-плагины с разделом редиректов): нет ли правила для нужного адреса. Если сомневаетесь, временно выключите плагины по одному и проверяйте адрес снова.
- Если сайт многоязычный (WPML, Polylang), проверьте, не включено ли автоматическое перенаправление по языку браузера: тогда посетителя уводит на другую языковую версию.
Tilda
- Проверьте «Настройки сайта → SEO → Редиректы для WWW, HTTPS»: здесь выбирается, на какой вариант адреса Tilda перенаправляет всегда.
- Проверьте «Настройки сайта → SEO → Редиректы страниц (Code 301)»: нет ли старого правила для этой страницы. После изменений опубликуйте страницы.
1С-Битрикс
- Проверьте
.htaccessв корне сайта и правила в «Настройки → Настройки продукта → Сайты» (адрес сайта и домены). Если перенаправляет на мобильный поддомен или на другой сайт, ищите правило сRewriteRuleиR=301/R=302или модуль, который отвечает за мобильную версию или выбор региона.
OpenCart
- Проверьте
.htaccessв корне сайта и адресаHTTP_SERVERиHTTPS_SERVERвconfig.phpиadmin/config.php: в них должен быть главный адрес сайта.
Другой движок или свой сервер
- Найдите, кто отвечает редиректом: выполните
curl -sI https://ваш-сайт/(пример ниже). В строкеLocation:будет адрес, куда уводит сайт, в первой строке — код (301, 302, 307, 308). - Ищите правило там, где обычно включают перенаправления: в настройках CMS (главный адрес, языковые или региональные версии), в
.htaccess(Apache), в конфиге nginx (return 301,rewrite), в панели хостинга и в DNS-сервисе или Cloudflare (Page Rules, Redirect Rules). - Если редирект нужен (http → https, www → без www), не удаляйте его, а сделайте одним шагом и постоянным 301. Если не нужен, удалите правило и проверьте адрес снова.
Пример кода
Замените example.by на адрес своего сайта.
# Куда и с каким кодом перенаправляет адрес (только заголовки)
curl -sI https://example.by/
# Вся цепочка шагов: каждый HTTP/… и Location по очереди
curl -sIL https://example.by/ | grep -iE '^(HTTP|location)'
# Как сайт отвечает «телефону, пришедшему из поиска»
curl -sI -A 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148' -e 'https://yandex.ru/' https://example.by/
# Подозрительные правила в .htaccess: редирект только для поисковых переходов или телефонов
RewriteCond %{HTTP_REFERER} (yandex|google) [NC]
RewriteCond %{HTTP_USER_AGENT} (android|iphone|mobile) [NC]
RewriteRule ^ https://чужой-сайт/ [R=302,L]
Если после исправления браузер всё равно уводит на старый адрес, это может быть кеш: постоянный редирект 301 браузер запоминает и повторяет без запроса к сайту. Откройте адрес в режиме инкогнито или в другом браузере, либо очистите кеш браузера. curl кеша не держит, поэтому показывает, как сайт отвечает на самом деле.
Перенаправление на чужой сайт, которое вы не настраивали, считайте взломом, пока не доказано обратное: смените пароли от админки, хостинга и FTP, обновите CMS и плагины.
Если сайт делал подрядчик
Перешлите ему ссылку на отчёт и эту просьбу:
Сайт сам перенаправляет на другой адрес (пример — в выводе curl). Найдите, пожалуйста, откуда берётся этот редирект, уберите лишний и оставьте один постоянный 301 на главный адрес.
Как проверить, что всё исправлено
Проверьте адрес снова на yasnoseo.by: проверка открывает сайт как робот и показывает, если главная перенаправляет на другой адрес, временным редиректом или цепочкой из нескольких шагов. Затем повторите команды curl выше и откройте сайт в новом окне инкогнито.