Почему 301 редирект ведёт на другой сайт, а не на новый домен

    При переносе сайта на новый домен часто возникает ситуация: 301 редирект настроен, но вместо целевого ресурса открывается совершенно другой проект, расположенный на том же сервере. В браузере отображается правильный адрес site2.ru, однако контент подгружается из директории стороннего сайта. При этом HTTP-версия может выдавать ошибку 500, а HTTPS - показывать чужой сайт. Разберём основные причины и способы их устранения.

    Основные причины перенаправления на другой сайт

    Чаще всего проблема кроется в неверной конфигурации веб-сервера (Apache или Nginx) или в настройках DNS. Рассмотрим ключевые сценарии.

    1. Неправильная настройка виртуальных хостов (VirtualHost)

    На одном сервере может быть размещено несколько сайтов. Каждый из них должен быть описан в отдельном блоке VirtualHost. Если для нового домена site2.ru не создан собственный VirtualHost или он неправильно указывает на корневую директорию, сервер подхватывает первый попавшийся хост по умолчанию (часто это default или другой сайт).

    • Проверьте файл конфигурации Apache (/etc/apache2/sites-available/ или /etc/httpd/conf.d/). Убедитесь, что для site2.ru задан правильный DocumentRoot.
    • Для Nginx проверьте директиву server_name и путь в root.
    • После изменений перезапустите сервер: systemctl restart apache2 или nginx -s reload.

    2. Конфликт SSL-сертификатов (режимы HTTP и HTTPS)

    Отдельная проблема - когда HTTP (порт 80) выдаёт ошибку 500, а HTTPS (порт 443) грузит другой сайт. Это указывает на то, что для порта 443 настроен VirtualHost с чужим сертификатом или директорией. Возможно, вы скопировали конфигурацию с другого домена, но забыли изменить SSLCertificateFile и DocumentRoot.

    • Создайте отдельный блок VirtualHost *:443 для site2.ru.
    • Укажите корректные пути к SSL-файлам и корневой папке нового сайта.

    3. Ошибки в файле .htaccess или rewrite-правилах

    Иногда 301 редирект настроен так, что он перенаправляет не на корень нового домена, а на сторонний ресурс. Проверьте содержимое .htaccess в корне старого сайта. Например, запись Redirect 301 / http://site2.ru должна быть единственной и не содержать лишних условий.

    4. Проблемы с DNS и кэшированием

    Если новый домен недавно зарегистрирован или изменял IP-адрес, DNS-записи могут не успеть обновиться. Используйте команду nslookup site2.ru или dig site2.ru, чтобы убедиться, что домен указывает на нужный IP-адрес сервера. Очистите кэш DNS на локальной машине (ipconfig /flushdns для Windows).

    Пошаговый план диагностики

    Чтобы быстро найти причину, выполните следующие шаги:

    1. Проверьте DNS - убедитесь, что A-запись ведёт на IP вашего сервера.
    2. Откройте конфигурацию веб-сервера - найдите блоки VirtualHost для site2.ru и убедитесь, что они уникальны и не пересекаются с другими доменами.
    3. Проверьте порядок загрузки хостов - в Apache часто используется NameVirtualHost, и первый хост в файле становится сервером по умолчанию. Перенесите конфигурацию нового домена в начало списка.
    4. Протестируйте без SSL - временно отключите HTTPS, чтобы понять, связана ли проблема с сертификатами.
    5. Посмотрите логи ошибок - в /var/log/apache2/error.log или /var/log/nginx/error.log часто содержатся прямые указания на конфликт директорий.

    Профилактика при переносе сайта

    Чтобы избежать подобных ситуаций в будущем:

    • Всегда создавайте отдельный VirtualHost для каждого домена.
    • Перед активацией редиректа проверяйте доступность нового домена напрямую (без редиректа).
    • Используйте staging-окружение для тестирования конфигураций.
    • При переносе на новый домен отключайте кэширование на сервере и в браузере.

    Если после всех проверок проблема сохраняется, обратитесь к хостинг-провайдеру - возможно, настройки сервера требуют вмешательства администратора.

    Часто задаваемые вопросы