Seohand

Как настроить редирект 301

Постоянный редирект помогает перенести страницу или домен и направить пользователей на новый адрес.

Обновлено 11 сентября 2026

Как настроить редирект 301

За 15-30 минут можно настроить 301-редирект с одной страницы, домена или HTTP на HTTPS, а затем проверить, что поисковики и пользователи попадают по нужному адресу. Ниже есть готовые правила для Apache и Nginx, порядок проверки и способы найти зацикливание.

Что означает код 301

Код ответа 301 сообщает браузеру и поисковому роботу: страница переехала на новый URL насовсем. Сервер отправляет ответ 301 Moved Permanently и адрес назначения в заголовке Location.

Например, при запросе к http://site.ru/catalog сервер может ответить:

HTTP/1.1 301 Moved Permanently Location: https://site.ru/catalog

После этого браузер открывает новый адрес. Поисковая система со временем заменяет старый URL в индексе новым и переносит на него накопленные сигналы страницы.

Ошибка 301 обычно не означает поломку. Запрос с кодом 301 считается успешным, если он ведет на правильную страницу. Проблема возникает, когда сервер отправляет редирект на несуществующий адрес, создает цикл или строит длинную цепочку переходов.

Код состояния 301 отличается от ответа 200. Код 200 говорит, что страница отдана сразу, а 301 отправляет посетителя на другой адрес. Код ответа сервера 404 сообщает, что ресурс не найден.

Когда нужен постоянный редирект

  • Сайт переехал с одного домена на другой.
  • Компания сменила адрес страницы, например /old-page/ на /new-page/.
  • Нужно объединить версии с www и без www.
  • Сайт перешел с HTTP на HTTPS.
  • Из URL убрали расширение .html или изменили структуру каталога.
  • Несколько дублей страницы должны вести на один канонический URL.

301 применяют, когда переезд окончательный. Временный 302 редирект сообщает, что адрес может вернуться. Например, 302 используют для короткой акции, теста новой страницы или временного технического перенаправления.

СитуацияКодЧто выбрать
Постоянная смена URL301Старый адрес ведет на новый
Временная акция302Старый адрес пока остается основным
Страница удалена без замены404 или 410Не отправлять на главную без причины
Страница открывается без перехода200Редирект не нужен

Правило выбора можно свести к трем числам:

  1. Один старый URL должен вести максимум на один целевой URL.
  2. Цепочка должна содержать 0 или 1 промежуточный редирект.
  3. Целевой URL должен отвечать кодом 200, а 301, 302, 404 или 5xx.

Настройка в .htaccess

Файл .htaccess работает на сервере Apache. Обычно он лежит в корневой папке сайта рядом с index.php или index.html. Откройте его через файловый менеджер хостинга, FTP или SSH и сохраните резервную копию до изменений.

Редирект с одной страницы на другую

Добавьте правило в корень файла:

RewriteEngine On Redirect 301 /old-page/ https://site.ru/new-page/

Для Apache чаще используют единый формат с модулем rewrite:

RewriteEngine On RewriteRule ^old-page/?$ https://site.ru/new-page/ [R=301,L]

Флаг R=301 задает код 301, а L останавливает обработку правил после совпадения. Символ ? перед концом регулярного выражения учитывает вариант URL со слешем и без него.

Редирект на другую HTML-страницу

Если старый адрес был /about.html, используйте:

RewriteEngine On RewriteRule ^about\.html$ https://site.ru/about/ [R=301,L]

Точка в имени файла экранирована обратным слешем. Иначе она может означать любой символ.

Как сохранить путь и параметры

При переносе всего сайта на новый домен правило должно передавать URI, то есть путь после домена:

RewriteEngine On RewriteCond %{HTTP_HOST} ^old-domain\.ru$ [NC] RewriteRule ^(.*)$ https://new-domain.ru/$1 [R=301,L]

Так /catalog/item перейдет на https://new-domain.ru/catalog/item. Запросы после знака вопроса обычно сохраняются автоматически. Если параметры нужно убрать, добавьте флаг QSD:

RewriteEngine On RewriteRule ^old-page/?$ https://site.ru/new-page/ [R=301,L,QSD]

Не копируйте это правило в оба домена. На старом домене оно должно отправлять запросы на новый, а на новом сервер должен открываться сам новый сайт.

Перенаправление домена и HTTPS

Как сделать редирект с одного домена на другой

Сначала добавьте новый домен в панели хостинга и настройте DNS. Старый домен должен продолжать указывать на сервер, который умеет отвечать редиректом. После этого установите правило:

RewriteEngine On RewriteCond %{HTTP_HOST} !^new-domain\.ru$ [NC] RewriteRule ^(.*)$ https://new-domain.ru/$1 [R=301,L]

Такой вариант переводит на новый домен все варианты старого адреса, включая страницы и каталоги. Проверьте отдельно основной домен, поддомен www и адрес с завершающим слешем.

Редирект с HTTP на HTTPS

Сертификат должен быть установлен до включения правила. Затем разместите в .htaccess:

RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Условие проверяет, что соединение не защищено. Если сайт доступен по нескольким доменам, лучше одновременно закрепить один основной адрес:

RewriteEngine On RewriteCond %{HTTPS} !=on [OR] RewriteCond %{HTTP_HOST} !^www\.site\.ru$ [NC] RewriteRule ^(.*)$ https://www.site.ru/$1 [R=301,L]

Это редирект с HTTP на HTTPS с нормализацией домена. Запрос к http://site.ru/page должен получить один ответ 301 и сразу открыть https://www.site.ru/page.

Фраза "редирект с https на https" обычно описывает переход между двумя защищенными версиями, например с https://site.ru на https://www.site.ru или с одного HTTPS-домена на другой. Для него проверяйте домен, а проверку HTTPS !=on.

Настройка на Nginx

В Nginx правила из .htaccess не работают. В конфигурации виртуального хоста добавьте отдельный серверный блок:

server { listen 80; server_name site.ru www.site.ru; return 301 https://www.site.ru$request_uri; }

После изменения проверьте конфигурацию командой nginx -t, затем перезагрузите Nginx. Если доступа к конфигурации нет, передайте правило администратору сервера или используйте настройки хостинга.

Проверка цепочек

Проверяйте не только финальную страницу, но и каждый переход. В браузере откройте инструменты разработчика, вкладку "Network", включите сохранение запросов и обновите страницу. В ответе должны быть видны статус 301 и заголовок Location.

Для быстрой проверки используйте терминал:

curl -I http://site.ru/old-page/

В ответе ищите:

HTTP/2 301 location: https://www.site.ru/new-page/

Команда с параметром -L покажет конечный ответ после всех переходов:

curl -IL https://site.ru/old-page/

Для массовой проверки URL возьмите список старых страниц из Google Search Console. Откройте отчет "Индексирование", затем "Страницы", выгрузите URL с ошибками или исключениями. Для отдельных адресов используйте инструмент "Проверка URL" и кнопку "Проверить опубликованный URL". Этот же список можно получить готовым: Seohand собирает его бесплатно за пару минут.

Проверьте минимум пять типов адресов:

  1. HTTP без www.
  2. HTTP с www.
  3. HTTPS без www.
  4. HTTPS с www.
  5. Старая страница с параметрами после знака вопроса.

Для каждого адреса запишите цепочку. Нормальный результат выглядит так: старый URL, один ответ 301, новый URL, ответ 200. Если видите 301, затем 301 и только потом 200, объедините правила.

Типичные ошибки при настройке

Цикл редиректов

Браузер показывает сообщение "Слишком много перенаправлений", а curl повторяет одни и те же адреса. Причина часто в том, что прокси передает серверу HTTP, хотя посетитель уже использует HTTPS. В таком случае условие нужно согласовать с настройками CDN или балансировщика, а не добавлять еще одно правило наугад.

Правило отправляет главную страницу вместо нужного URL

Иногда разработчик ставит редирект всех адресов на главную. Посетитель теряет исходный путь, а поисковик видит замену с иным содержанием. Для массового переезда сохраняйте $1 или $request_uri. Если аналога у страницы нет, отдайте 404 или 410.

301 поставили на целевую страницу

Если правило действует и для нового адреса, он тоже начинает перенаправлять сам на себя. Ограничьте правило доменом, протоколом или точным путем. После изменения очистите кэш CMS, CDN и браузера.

Правило добавили не в тот файл

На Apache может использоваться несколько конфигураций, а сайт может работать через Nginx. Уточните тип сервера в панели хостинга. Если файл называется nginx.conf, редактирование .htaccess ничего не изменит.

Редирект теряет параметры и POST-запросы

Проверьте URL с ?utm_source=test, фильтрами и пагинацией. Для обычных GET-страниц параметры обычно сохраняются. Формы, API и запросы с методом POST нужно тестировать отдельно: после 301 клиент может повторить запрос иначе. Для временного технического перенаправления иногда подходит 307, он отличается от 301 при переезде страницы.

Сайт отдает 301 на несуществующий адрес

Проверьте конечный URL кодом curl -I и в отчете "Проверка URL". Если после редиректа получаете 404, исправьте путь или создайте страницу замены. Не ориентируйтесь только на то, что адрес открывается в браузере из-за старого кэша.

Как поставить задачу нейросети

Нейросеть может подготовить черновик правил, если дать ей адреса, тип сервера и точное требование. Скопируйте промпт и замените значения в квадратных скобках:

Ты технический SEO-специалист. Составь правила 301-редиректа для [Apache .htaccess или Nginx]. Старый домен: [old.example] Новый домен: [new.example] Канонический протокол: [https] Канонический вариант домена: [с www или без www] Нужно сохранить пути URL и GET-параметры. Перенаправить: 1. [старый URL] на [новый URL] 2. [старый URL] на [новый URL] Покажи готовый конфиг без лишних правил. Отдельно объясни, куда его вставить. Проверь, что нет цикла, цепочки из двух 301 и редиректа нового URL на самого себя. Укажи команды curl для проверки. Не выдумывай настройки сервера и предупреди, какие данные надо уточнить.

Ответ нейросети нельзя публиковать без проверки. Она часто смешивает синтаксис Apache и Nginx, ставит условие HTTPS не для того прокси, забывает экранировать точку или отправляет все страницы на главную. Иногда модель уверенно пишет, что 301 передает параметры, хотя конкретное правило их удаляет.

Сначала проверьте конфигурацию в тестовом окружении, затем выполните curl -IL для старого и нового адреса. После публикации посмотрите отчеты "Страницы" и "Проверка URL" в Google Search Console. Для интеграций, включая HTTP-соединение 1С, дополнительно проверьте метод запроса, заголовки и авторизацию.

Проверьте свой сайт, это бесплатно Seohand читает до 150 страниц, показывает, что мешает попасть в поиск, и пишет, кто это чинит: программист, копирайтер или сервис. Карта не нужна. Разобрать сайт

Что почитать дальше

Проверка индексации сайта Проверка индексации сайта покажет, какие страницы поиск может забрать, а какие для него закрыты. По каждому URL укажем причину и исполнителя. Анализ бесплатный, без доступов. Разбор сайта для поиска ошибок и точек роста Проверьте сайт, найдите технические и SEO-проблемы, получите список рекомендаций по улучшению страниц. Проверка карты сайта Проверка sitemap.xml онлайн: читаем карту сайта целиком, вместе с вложенными, и проверяем адреса. Видно, какой код отвечает, что закрыто noindex и куда смотрит canonical. Технический аудит сайта Проверьте сайт на технические ошибки, которые мешают индексации, загрузке страниц и продвижению в поиске. Как пользоваться Google Search Console Узнайте, как добавить сайт в Search Console, проверить индексацию и анализировать поисковый трафик Google. Что такое индексация сайта Узнайте, как поисковые роботы находят страницы, что мешает индексации и как проверить сайт в поиске.