301 редирект с домена на домен: настройка через .htaccess, Nginx и хостинг
Перед владельцем сайта рано или поздно встает задача переезда на новый адрес. Причины: ребрендинг, смена доменной зоны или объединение площадок. Недостаточно просто запустить сайт — нужно сохранить позиции и трафик. Для этого требуется грамотная переадресация страниц.
Главная особенность данного вида 301 редиректа — перенаправление всего ресурса целиком с сохранением структуры путей. Пользователь с old-site.ru/catalog/product должен попасть именно на такую же обновленную страницу.
В этой инструкции мы разберем, как настроить такое перенаправление через файл .htaccess, конфигурацию Nginx и панель хостинга, а также проверим корректность работы после.
301 редирект с домена на домен: как это работает
Принцип работы постоянной переадресации при смене домена прост, но требует понимания. Когда поисковый робот или пользователь обращается к URL старого ресурса, сервер должен отдать код http 301 и указать в заголовке Location новый адрес. Самый важный нюанс — сохранение пути запроса (URI). Для этого используются специальные переменные: %{REQUEST_URI} в Apache и $request_uri в Nginx.
Почему это так важно для SEO? Поисковые системы, встречая 301-й код, понимают, что страница перемещена насовсем. Они сопоставляют бывший и новый адреса по путям и передают ссылочный вес (PageRank) постранично. Если настроить простой редирект всего на главную нового ресурса, произойдет «размазывание» веса, и позиции неизбежно упадут. Правильная настройка гарантирует, что ссылочные факторы будут перенесены на соответствующие страницы обновленного ресурса.
Настройка 301 редиректа с домена на домен через .htaccess
Этот способ подходит для большинства хостингов, работающих на базе серверов Apache. Все правки вносятся в файл .htaccess, расположенный в корневой директории старого ресурса. Важное условие: DNS предыдущего домена должны по-прежнему указывать на этот хостинг, иначе правило не сработает.
Структура правила достаточно проста. Откройте .htaccess и добавьте следующий код в самое начало:
| <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC,OR] RewriteCond %{HTTP_HOST} ^www.old-site\.ru$ [NC] RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L] </IfModule> |
Теперь поясним каждую директиву. RewriteEngine On включает механизм преобразований. RewriteCond %{HTTP_HOST} — это условие, которое проверяет, что запрошенный адрес равен старому (как с префиксом, так и без). Флаг [NC] означает, что регистр букв не важен, а [OR] указывает, что нужно выполнить один из вариантов. Самое главное — RewriteRule ^(.*)$. Она берет весь путь из запроса (^(.*)$) и подставляет его в новый домен. Флаги [R=301,L] говорят серверу отдать код постоянного перенаправления и прекратить дальнейший поиск правил.
301 редирект с одного домена на другой в Nginx
Для данного типа серверов логика будет похожей, но конфигурация вносится в файл настроек виртуального хоста (обычно в директориях /etc/nginx/sites-available/ или /etc/nginx/conf.d/). Вам потребуется создать отдельный server-блок для старого домена или отредактировать существующий. Внутри блока необходимо прописать:
| server { listen 80; server_name old-site.ru www.old-site.ru; |
Директива server_name перечисляет все варианты старого адреса, которые нужно обработать. Ключевой элемент здесь — return 301 с переменной $request_uri. Эта переменная содержит полный путь запроса (например, /catalog/product), что позволяет сохранить структуру URL при переезде. После внесения изменений обязательно проверьте синтаксис командой nginx -t и перезагрузите сервер. Такой способ с использованием return считается более производительным и предпочтительным, чем rewrite.
| Меняете домен? Позаботьтесь о SEO заранее Смена домена без правильно настроенных 301 редиректов — прямой путь к потере позиций. Мы сопровождаем переезд: настраиваем редиректы с домена на домен, проверяем индексацию и следим за передачей ссылочного веса. Заказать SEO продвижение → |
301 редирект с домена на домен через панель хостинга
Многие хостинг-провайдеры предоставляют удобный графический интерфейс для управления сайтами. В панелях управления (cPanel, ISPmanager, Plesk) есть раздел «Перенаправления» или «Редиректы». Это хороший вариант для тех, кто не хочет вручную править конфигурационные файлы. Алгоритм действий обычно выглядит так:
- Найти раздел управления редиректами.
- Выбрать тип — 301 (Permanent).
- В поле «Источник» указать прошлый домен, а в поле «Назначение» — новый.
- Сохранить изменения.
Важное ограничение: панели хостинга часто редиректят только на новую главную, без сохранения путей. Запрос old-site.ru/about поведёт на new-site.ru/. После настройки обязательно проверьте это. Если пути не сохраняются — потребуется ручная правка.
301 редирект для www: домен без www на домен с www и обратно
В контексте смены домена часто возникает дополнительная задача — корректная обработка www-префикса. Если забыть про редирект с www.old-site.ru, то посетители и поисковики могут получить ошибку или не перенаправляться должным образом.
В примере выше для .htaccess мы учли этот момент, добавив два условия RewriteCond с флагом [OR]. Для Nginx достаточно просто перечислить оба имени в директиве server_name. Также может возникнуть ситуация, когда нужно привести к единому виду уже новый домен. Например, вы решили, что основное зеркало — это new-site.ru. Тогда дополнительно к редиректу со старого, нужно настроить переадресацию с www.new-site.ru на new-site.ru. Это делается аналогично: либо отдельным правилом в .htaccess нового домена, либо отдельным server-блоком в Nginx.
Как проверить 301 редирект с домена на домен
После того как вы выполнили настройку, необходимо убедиться, что всё работает без ошибок. Проверка должна быть комплексной.
Во-первых, откройте в браузере главную на старом домене, затем несколько случайных глубоких страниц (old-site.ru/category/page-1, old-site.ru/blog/post). Убедитесь, что каждая ведет на соответствующий аналог на новом сайте.
Во-вторых, проверьте www.old-site.ru и www.old-site.ru/any-page. Они должны редиректить так же, как и версия без префикса. В качестве инструментов проверки используйте:
- Браузер: Нажмите F12, вкладка Network (Сеть). Перейдите по старому адресу. В списке запросов первый ответ должен иметь статус 301 и содержать заголовок Location, указывающий на новый URL.
- Командная строка: Используйте команду curl -I http://old-site.ru. В выводе вы увидите код ответа 301 и целевой адрес.
- Онлайн-сервисы: Существуют бесплатные сервисы проверки редиректов (Redirect Checker), которые покажут всю цепочку переходов.
Обратите внимание на отсутствие цепочек. Идеальный вариант — прямая переадресация без промежуточных шагов (old.ru → new.ru). Убедитесь также, что конечный URL отвечает кодом 200 OK.
Переезд домена с 301 редиректом: смена домена и перенос старых адресов
Полноценный переезд сайта — это комплексная задача, выходящая за рамки простого копирования файлов. Ключевая цель — перенести ссылочный вес и историю со старого домена. Шаги должны быть следующие:
- Совпадение структуры: Идеальный сценарий, когда структура URL на новом сайте полностью совпадает со старым. В этом случае достаточно одного универсального правила с сохранением пути, описанного выше.
- Изменение структуры: Если архитектура претерпела изменения (например, вы перешли с папок на ЧПУ), простое правило не сработает. Вам потребуется составить карту (map) соответствий старых адресов новым и прописывать каждый редирект вручную или с помощью регулярных выражений.
- Настройка редиректа: Применяем один из способов, описанных в этой статье, с обязательным сохранением URI, если структура не менялась.
- Жизнь старого домена: Не отключайте хостинг для еще минимум 6–12 месяцев. Поисковые системы могут довольно долго переиндексировать ссылки и переходить по старому адресу.
Помните, что перенос старых адресов — это крайне важно для SEO. Если внутренние страницы потеряют накопленный вес, сайт может значительно просесть в выдаче по коммерческим и информационным запросам.





