При работе с веб-ресурсами возникают ситуации, когда происходит удаление, перенос или изменение url-адреса отдельных страниц или сайта целиком. При этом требуется сохранить индексацию в поисковых системах и перенаправить пользовательский трафик на новый адрес. Для решения этой задачи используется функция под названием 301 Redirect.
Грамотно настроенный редирект htaccess позволяет избежать ошибок при открытии страниц и сохранить позиции ресурса в выдаче. В данном материале разобрано, как прописать 301 редирект в htaccess для любых технических задач, включая безопасный редирект с http на https без потери поискового трафика. Также в руководстве подробно описано, как выполняется настройка сервера и как избежать ошибок при переадресации.
Основные тезисы статьи
- 301 редирект – постоянная переадресация со старого URL или домена на новый адрес, которая помогает сохранить трафик, индексацию и SEO-вес страниц.
- Случаи применения: переезд сайта, смена домена, склейка www и без www, переход на HTTPS, удаление страниц, слеши и index.php.
- Способы настройки через .htaccess, CMS, PHP, Nginx, панели управления и другие варианты, а также проверка корректности переадресации после изменения адресов сайта.
- Основные сценарии и конфигурации кодов в статье продемонстрированы на примере конфигурационного файла .htaccess.
- Типичные ошибки веб-мастеров: возникновение бесконечных циклов переадресации, конфликты правил в коде и случайное использование временного 302 кода вместо постоянного 301.
Что такое 301 редирект
301 Redirect – это стандартный HTTP-статус ответа сервера, который сообщает браузерам и краулерам поисковых систем, что запрашиваемый документ или страница были окончательно и безвозвратно перемещены на новый URL-адрес. При обработке этого кода роботы Яндекса и Google передают до 95-99% ссылочного веса со старого адреса на новый, и это позволяет сохранить накопленные SEO-показатели сайта после изменения его структуры.
В отличие от временных перенаправлений, постоянный редирект указывает поисковым машинам на необходимость полностью исключить исходный URL из базы индекса и заменить его актуальным целевым адресом. Браузеры также кэшируют этот ответ на стороне пользователя. При повторном обращении к старому адресу переход на новую страницу происходит мгновенно, без повторного отправления запроса к серверу: это снижает общую нагрузку на хостинг и ускоряет отрисовку контента.
Настроить код состояния HTTP 301 можно разными способами:
- с помощью HTML и PHP Meta Refresh;
- через панель управления или плагины соответствующей CMS;
- при помощи специальных скриптов (программ);
- на уровне хостинг-провайдера;
- внесением соответствующих записей в файлы .htaccess для сервера Apache или web.config для IIS.
Последний способ считается наиболее удобным. Ниже этот метод рассматривается более подробно.

Чем 301 редирект отличается от 302 и canonical
- Редиректы 302 и 307 (Temporary) – временные изменения. Поисковые роботы продолжают индексировать старый URL, а новый адрес не аккумулирует ссылочный вес. Использование 302 кода при смене структуры сайта приводит к появлению дублей в индексе и падению позиций. Временный редирект нужен только для краткосрочных акций или технических работ.
- Тег rel="canonical". Выступает рекомендацией для поисковиков, указывая главную страницу среди дублей, но сохраняет доступ к остальным адресам для пользователей.
- Обновления Meta Refresh. Выполняют перенаправление через браузер, то есть не на уровне сервера. Это создает задержку, ухудшает поведенческие факторы и снижает позиции в поиске.
Постоянный 301 редирект используется, когда старый URL окончательно заменяется новым. Пользователь и поисковый робот автоматически перенаправляются на новый адрес, при этом странице передается большая часть накопленного ссылочного веса. Исключение – перенос сайта с забаненного домена: вместе с 301 редиректом на новый адрес перейдут и поисковые санкции.
В каких случаях нужен 301 редирект
Настройка постоянного перенаправления требуется при любых изменениях в структуре URL-адресов. Основные сценарии применения:
- Переход на защищенный протокол HTTPS. Необходим для склейки версий сайта с SSL-сертификатом и без него. При этом важно понимать, что такое протокол HTTPS и принцип его работы, чтобы исключить сбои безопасности.
- Смена доменного имени или переезд сайта. Тотальная переадресация всех страниц со старого адреса (old_site.ru) на новый (new_site.ru) для сохранения трафика.
- Склейка зеркал сайта. Объединение вариантов написания адреса с www и без www. Выбирается один главный домен, на который настраивается редирект со всех остальных копий. Чтобы избежать ошибок, полезно знать, что такое зеркало сайта, и четко определить главное зеркало.
- Изменение написания URL отдельных страниц. Требуется при SEO-оптимизации адресов (внедрение ЧПУ), смене CMS или изменении структуры (например, редирект с site.ru/1hdkr5 на site.ru/page_adress).
- Перенос разделов на субдомены. Смена адресов вида www.site.ru/example на субдомен example.site.ru.
- Удаление старой страницы. Спасает от генерации большого количества ошибок 404 (Страница не найдена), негативно влияющих на поведенческие факторы и индексацию, заменяя их переходом на актуальный раздел.
- Аккумуляция трафика. Перенаправление пользователей с дополнительных доменов, купленных в созвучных или региональных зонах, на один приоритетный сайт.
- Переход на мобильную версию. Быстрый перевод пользователей на мобильный поддомен со смартфонов и планшетов.
Какой код использовать в .htaccess
Для гибкого управления переадресацией необходимо понимать синтаксис основных директив. Файл .htaccess обрабатывается модулями веб-сервера Apache, поэтому перед началом работы стоит изучить, что такое веб-server Apache и как им пользоваться, чтобы избежать сбоев конфигурации.
Существует три базовых инструмента для создания правил:
- Директива Redirect 301. Входит в модуль mod_alias. Используется для простого, построчного сопоставления старых и новых статических адресов. Регулярные выражения здесь не поддерживаются.
- Директива RedirectMatch. Позволяет применять базовые регулярные выражения и маски для массовой переадресации целых групп схожих URL-адресов.
- Модуль mod_rewrite (RewriteCond и RewriteRule). Самый мощный инструмент серверной конфигурации. Он позволяет задавать сложные логические условия (проверка протокола HTTPS, порта, хоста) перед выполнением правила перезаписи. Именно через mod_rewrite реализуются комплексные SEO-сценарии склейки доменов.
Как настроить 301 редирект через CMS и панели управления
В большинстве популярных систем управления контентом и конструкторов сайтов реализованы встроенные инструменты или модули для управления перенаправлениями без прямого редактирования серверных файлов. Это позволяет решать базовые SEO-задачи без привлечения веб-разработчиков, хотя для сложных правил конфигурация на уровне сервера по-прежнему предпочтительнее.
WordPress и список плагинов
- Redirection — самый популярный плагин для настройки редиректов. Кроме основной функции обладает следующими возможностями: сбором статистики переадресаций, отслеживанием ошибок 404, поддержкой регулярных выражений.
- Safe Redirect Manager — простой плагин, который также поддерживает регулярные выражения, практически не влияет на производительность сайта.
- Quick Page/Post Redirect Plugin — еще один удобный инструмент оптимизации. Один из недостатков — отсутствие поддержки регулярных выражений. К ссылкам можно добавлять атрибут «nofollow».
- Simple 301 Redirects. Данный модуль обладает одним недостатком – url для переадресации необходимо прописывать вручную.
Читайте также: Как настроить Yoast SEO
Настроить Permanent Redirect 301 в Вордпресс можно и через редактирование файла .htaccess в разделе управления хостингом. Чтобы подключиться к нему, потребуется использовать FTP-клиент. Сама кодировка производится по общим правилам настройки переадресации в .htaccess.
Битрикс и другие CMS
В других популярных платформах настройка имеет свои особенности. Чтобы настроить 301 редирект в CMS OpenCart, в файле .htaccess необходимо прописать:
RewriteCond %{QUERY_STRING} ^_route_=адрес_старой_страницы.html$
RewriteRule ^(.*)$ http://ваш_домен.ru/новой_страницы/? [R=301,L]
Для Битрикс кодировка будет выглядеть следующим образом:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sng-it.ru$ [NC]
RewriteRule ^(.*)$ http://sng-it.ru/$1 [R=301,L]
В Joomla настройки переадресации производятся через панель администратора в разделе «Компоненты» => «Перенаправление». Здесь можно не только установить правила редиректа, но и отслеживать страницы с битыми ссылками и перенаправлять их на корректные адреса.
С облачными конструкторами сайтов ситуация иная. Например, популярная платформа Wix не предоставляет веб-мастерам возможности прямого редактирования или создания файла .htaccess. Настройка 301 редиректа там выполняется исключительно через штатный интерфейс панели управления в базовом редакторе настроек SEO.

Настройка 301 редиректа в .htaccess
Файл с расширением .htaccess представляет собой конфигурационный файл веб-сервера Apache локального действия. Его директивы позволяют управлять параметрами сервера, переопределять глобальные настройки для конкретных директорий и гибко обрабатывать входящие URL-адреса. Все прописанные правила относятся непосредственно к той папке, где размещен .htaccess, и автоматически распространяются на все ее дочерние каталоги.
Настройка постоянной переадресации путем редактирования этого файла доступна исключительно на тех хостингах, которые функционируют под управлением Apache.
Подготовка файла .htaccess
Найти конфигурационный файл можно через файловый менеджер в панели управления хостинга либо с помощью FTP-клиента. В обоих случаях в интерфейсе используемой программы необходимо предварительно включить отображение скрытых файлов (так как имена файлов, начинающиеся с точки, по умолчанию скрыты операционной системой).
Если вы только запускаете проект и еще не подготовили серверную среду, пошагово о подборе панелей и управлении сайтом читайте в материале о том, как настроить виртуальный хостинг.
Перед началом добавления правил необходимо выполнить базовую подготовку структуры:
- Проверить наличие файла .htaccess в корневом каталоге сайта (например, в папке public_htmlдля WordPress). Если файл отсутствует, его нужно создать вручную через текстовый редактор в кодировке UTF-8 (без BOM).
- Активировать модуль перенаправлений с помощью команды RewriteEngine On.
- Чтобы избежать ошибок 500 (Internal Server Error) в случае отсутствия или сбоя серверных модулей, все правила перезаписи адресов следует помещать внутрь логического блока IfModule.
- Поскольку веб-хостинги по умолчанию могут отдавать временный 302 код ответа, в конце каждого правила необходимо явно прописывать управляющие флаги [R=301,L]. Флаг R=301принудительно задает постоянную переадресацию, а флаг L (Last) останавливает обработку последующих правил, если текущее условие сработало.
Базовая конструкция выглядит следующим образом:
<IfModule mod_rewrite.c>
RewriteEngine On
# Здесь прописываются правила редиректов
</IfModule>
Для ускорения процесса и автоматического формирования синтаксиса можно использовать специализированные онлайн-генераторы.
301 редирект с www на без www и наоборот
Поисковые системы воспринимают адреса вида [http://name.site](http://name.site) и [http://www.name.site](http://www.name.site) как два абсолютно разных веб-ресурса с дублирующимся контентом. Чтобы избежать падения позиций из-за неконтролируемого дублирования страниц, выполняется «склейка» зеркал.
Если в качестве главного зеркала выбрана версия без WWW, в файл добавляется следующее правило:
RewriteCond %{HTTP_HOST} ^www\.name\.site$ [NC]
RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
Если приоритетным является адрес с WWW, используется обратная конструкция:
RewriteCond %{HTTP_HOST} ^name\.site$ [NC]
RewriteRule ^(.*)$ http://www.name.site/$1 [R=301,L]
(Здесь модификатор [NC] означает отсутствие чувствительности к регистру букв в запросе).
301 редирект с http на https
Текст разделов «Редирект с http на https для всего сайта», «Постранично» и «Для одной страницы» с сайта объединяем и переписываем (очищаем старый запутанный код от дублирующихся строк и выстраиваем логику применения кодов):
При внедрении SSL-сертификата требуется настроить принудительное перенаправление пользователей и поисковых краулеров на защищенный протокол.

Универсальный код для всего сайта:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Если сервер работает через прокси-сервер (например, Nginx перед Apache), стандартное условие может вызвать циклическую ошибку. В этом случае применяется альтернативный вариант с проверкой портов и заголовков:
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Исключение конкретной страницы из общего HTTPS-перенаправления: Если необходимо перевести на защищенный протокол весь сайт, кроме одной конкретной технической страницы (например, page.php), синтаксис будет следующим:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/page\.php$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Редирект на HTTPS только для одной страницы: Если защищенный протокол требуется принудительно включить исключительно для целевого URL:
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/page\.php$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Редирект сайта с https на http
В редких случаях обратного переноса сайта на незащищенный протокол используется обратное правило:
RewriteCond %{HTTPS} on [OR]
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^(.*)$ http://name.site/$1 [R=301,L]
301 редирект с домена на домен/на другой домен
При переезде веб-ресурса на новый адрес важно полностью сохранить накопленные SEO-позиции и перенаправить входящий трафик. Для этого в файле .htaccess старого домена прописывается конструкция:
RewriteCond %{HTTP_HOST} ^www\.old_name\.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^old_name\.ru$ [NC]
RewriteRule ^(.*)$ http://new_name.ru/$1 [L,R=301]
301 редирект с одной страницы на другую
Постраничный редирект для статических URL (без параметров): Используется при изменении структуры разделов или переходе на человекопонятные URL (ЧПУ). Вес старой страницы при этом полностью переходит на новую:
RewriteRule ^old_page\.html$ http://vash-sait.ru/new_page.html [R=301,L]
Редирект страниц для URL с динамическими параметрами: Если старый адрес содержал динамические переменные (например, [http://name.site/index.php?section=1](http://name.site/index.php?section=1)), стандартная директива RewriteRule не сможет считать параметры после знака вопроса. В таких сценариях задействуется анализ строки запроса QUERY_STRING:
RewriteCond %{QUERY_STRING} ^section=1$
RewriteRule ^index\.php$ http://name.site/articles.php? [R=301,L]
Знак вопроса в самом конце целевого URL необходим для того, чтобы старый хвост параметров автоматически отсекся и не приклеился к новому адресу.
301 редирект для разделов и каталогов
К этой категории относятся правила, управляющие отображением конечных адресов и вложенных папок сайта для приведения их к единому стандарту.
Склейка главной страницы (убираем index.php): Избавляет сайт от дублирования главной страницы, когда она одновременно открывается по разным адресам:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://name.site/ [R=301,L]
Удаление конечного слеша в адресах (весь сайт):
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
Принудительное добавление конечного слеша (весь сайт):
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !^[^\?]*\.
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
Групповые правила и регулярные выражения
Массовые перенаправления и обработка нестандартных запросов реализуются с помощью специальных метасимволов. Ниже приведена справочная таблица синтаксиса регулярных выражений, применяемых в .htaccess:
|
Символ |
Что означает |
|
. |
Точка заменяет один произвольный символ |
|
[abc] |
Перечень знаков, совпадающих с буквами a, b или c |
|
[^abc] |
Список символов вне указанного диапазона (любые, кроме a, b, c) |
|
* |
Предыдущий знак может повторяться 0 или более раз |
|
[abc]* |
Поиск идущих подряд символов из заданного набора |
|
[^abc]* |
Поиск любых символов, кроме указанных в наборе |
|
.* |
Заменяет абсолютно любой набор символов |
|
^ |
Начало строки запроса |
|
$ |
Конец строки запроса |
|
\w |
Любая цифра, буква или знак подчеркивания _ |
|
\d |
Любая цифра от 0 до 9 |
|
\D |
Любой знак, кроме цифры |
|
[0-9] |
Диапазон для замены любой цифры |
|
[a-z] |
Все буквы от a до z в нижнем регистре |
|
[A-Z] |
Все буквы от A до Z в верхнем регистре |
|
[a-zA-Z] |
Любая буква в любом регистре |
Перенаправление с несуществующих страниц (404 ошибка): Код 404 Not Found сообщает об удалении документа. Чтобы удержать пользователя, часто настраивают групповое правило перенаправления со всех битых страниц на главную:
ErrorDocument 404 http://www.site.com/
Важно: злоупотреблять тотальным редиректом всех 404 страниц на главную в рамках SEO не стоит, так как поисковые системы могут расценить это как софт-404 ошибки и ухудшить краулинговый бюджет.
Итоговый пример структуры корректного файла .htaccess:
Options -Indexes
ErrorDocument 404 /404.php
<IfModule mod_rewrite.c>
RewriteEngine On
# 1. Склейка зеркал с www на без www
RewriteCond %{HTTP_HOST} ^www\.my_site\.ru$ [NC]
RewriteRule ^(.*)$ https://my_site.ru/$1 [R=301,L]
# 2. Удаление конечного слеша
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
</IfModule>
Другие способы настройки 301 редиректа
Если веб-ресурс работает не на связке Apache, или требуется реализовать перенаправление на уровне программного кода конкретной страницы, используют альтернативные серверные методы.
Настройка на уровне веб-сервера Nginx
Если сайт работает под управлением Nginx, правило настраивается в файле nginx.conf внутри директивы server с помощью флага permanent:
if ($host = 'www.domain.com') {
rewrite ^(.*)$ http://domain.com$1 permanent;
}
Перенаправление средствами программного кода (PHP, JSP)
Внедрение заголовков ответа сервера непосредственно в скрипты сайта позволяет перенаправлять пользователей еще до начала отрисовки страницы браузером.
Пример для PHP:
PHP
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newpage.php");
exit();
?>
Пример для JSP (Java):
<%
response.setStatus(301);
response.setHeader("Location", "http://www.new-url.com");
%>
Использование клиентского HTML-редиректа
Метод Meta Refresh выполняет перенаправление на уровне браузера, а не сервера. При нулевой задержке (content="0") переадресация выполняется сразу после загрузки страницы:
<meta http-equiv="refresh" content="0;url=https://new-url.com">
Важно: данный способ является крайней мерой, поскольку поисковые системы индексируют такие перенаправления хуже, чем честный серверный 301 код.
Для продолжения темы поискового продвижения и правильной настройки адресов на мультиязычных проектах полезно отдельно изучить материал: Запускаем мультиязычный сайт – что такое Hreflang и как он помогает в продвижении.
Настройка через панели управления хостингом
Для веб-мастеров, предпочитающих избегать прямой правки конфигурационных файлов, современные коммерческие панели управления предлагают встроенные графические инструменты для автоматического создания базовых правил переадресации.
Панель управления cPanel
Интерфейс cPanel позволяет быстро настроить склейку зеркал или постраничный редирект, автоматически генерируя корректный код внутри скрытого файла .htaccess. Порядок действий:
- В блоке «Домены» открыть раздел «Перенаправления».
- В поле «Тип» установить значение «Постоянный (301)».
- В выпадающем списке выбрать конкретное доменное имя, для которого создается правило.
- В строке «Перенаправляет на» указать точный целевой адрес (например, [http://example.ru](http://example.ru)).
- В блоке настроек «Перенаправление www» активировать триггер «Перенаправлять только с www» (если выполняется склейка в пользу основного домена без WWW).
- Зафиксировать изменения нажатием кнопки «Добавить»

Панель управления ISPmanager
В этой панели управление перенаправлениями встроено напрямую в модуль администрирования сайтов, что избавляет от необходимости вручную редактировать файлы nginx.conf или .htaccess. Порядок действий:
- Перейти в главный раздел «WWW» → подраздел «WWW-домены».
- Выбрать нужное доменное имя в списке и нажать кнопку «Редиректы» (либо войти в режим редактирования домена).
- Для автоматической склейки протоколов HTTP и HTTPS достаточно активировать или деактивировать соответствующий чекбокс в свойствах домена — панель управления самостоятельно обновит конфигурацию веб-сервера на уровне системы.

Как настроить 301 редирект без ошибок
Некорректная конфигурация перенаправлений может заблокировать доступ пользователей к сайту или привести к резкому падению его позиций в поисковой выдаче. К наиболее распространенным техническим ошибкам относятся:
- Формирование цепочек редиректов/Chains. Ситуация, при которой один URL перенаправляет на второй, второй – на третий, и только затем открывается конечный адрес. Поисковые роботы неохотно обходят такие конструкции, нерационально расходуя краулинговый бюджет сайта, а цепочка более чем из 5 переходов может полностью остановить индексацию.
- Возникновение циклических перенаправлений. Появляется из-за взаимных конфликтов правил (например, когда страница А пересылает на страницу Б, а в правилах для страницы Б прописан возврат на адрес А). Это приводит к ошибке браузера «ERR_TOO_MANY_REDIRECTS» и полной недоступности контента.
- Ошибочное использование 302 или 307 ответа вместо 301. Временный код заставляет поисковые системы сохранять старый URL в индексе, из-за чего слияния или передачи ссылочного веса на новый приоритетный адрес не происходит. Для постоянного склеивания зеркал необходимо жестко использовать флаг [R=301,L].
- Игнорирование динамических параметров. Ошибка возникает, когда при переносе страниц конфигурация не учитывает переменные в строке запросов (QUERY_STRING), из-за чего ломается адресация внутренних каталогов и разделов.
- Перенаправление служебных файлов. Массовый автоматический редирект всех страниц (включая технический файл robots.txt) на главную или на нерелевантный контент воспринимается поисковиками как ошибка Soft 404.
Для смежных серверных задач полезно отдельно изучить материал: что такое nofollow-ссылки и как их правильно использовать.
Как проверить 301 редирект после настройки
После завершения настройки рекомендуется проверить корректность работы редиректа. Важно контролировать не только сам факт автоматического перехода на новый адрес, но и чистоту всего пути запроса – на нем не должно быть скрытых промежуточных этапов и временных кодов ответа.
Для прикладной проверки применяются следующие методы:
- Ручное тестирование. Первичный контроль выполняется путем ввода старого URL в адресную строку браузера. Проверку необходимо осуществлять строго в режиме инкогнито, поскольку современные браузеры жестко кэшируют 301-й ответ сервера, из-за чего можно упустить из виду незамеченную ошибку.
- Анализ HTTP-заголовков. Чтобы убедиться, что сервер отдает именно постоянный 301 код, а финальный целевой URL возвращает успешный статус 200 OK, используют специализированные онлайн-сервисы: Redirect Checker, bertal.ru или Header Checker Tool. Они наглядно визуализируют цепочку ответов, позволяя вовремя заметить лишние промежуточные прыжки.
- Массовый краулинг сайта. Для проверки крупных интернет-магазинов ручной обход неэффективен. В таких случаях задействуют десктопный инструмент Screaming Frog SEO Spider. Программа полностью сканирует структуру веб-ресурса, формирует отчет по всем директивам перенаправлений, рассчитывает точную длину цепочек и подсвечивает некорректные конечные URL-адреса.
Что в итоге
Постоянный 301 редирект выступает главным инструментом поисковой оптимизации и сохранения трафика при любых масштабных изменениях структуры веб-ресурса. Наиболее надежным, быстрым и стандартизированным методом его реализации на серверах Apache остается точечное внесение регулярных выражений в файл .htaccess. Главное – выбрать подходящий сценарий настройки и проверить корректность работы редиректа после внесения изменений.