Как сделать редирект в PHP
Читайте эту статью, если хотите узнать, зачем нужен редирект и как сделать редирект в PHP.
Что такое редирект
Редирект — это автоматические перенаправление пользователя с одного URL на другой. Перенаправление можно настроить как на разные страницы одного сайта, так и на страницы другого сайта.
Редирект сопровождается кодом ответа 3xx. Самые популярные виды переадресации:
- 301 редирект — когда конечная страница навсегда перемещена на другой URL. При такой переадресации индексируется только новая версия страницы с новым URL-адресом.
- 302 редирект — когда конечная страница временно перемещена на другой URL. В этом случае она индексируется и на старом, и на новом URL-адресе.
Redirect PHP URL HTTP
Для чего нужен редирект
Частые случаи, при которых используется редирект:
- смена доменного имени. После переноса сайта на другой домен, прежний домен ещё будет отображаться в поисковиках некоторое время. Редирект поможет направить посетителей на новый адрес сайта.
- перенос раздела на поддомен. Этот случай похож на смену доменного имени. Разница в том, что трафик перенаправляется в пределах одного домена. Предположим, что на вашем сайте есть страница со списком адресов test2d.ru/contacts. Со временем клиентская база расширилась, и нужно разместить списки адресов для нескольких городов или стран. Вы можете создать отдельный поддомен для каждого города и разместить на нём адреса только в этом городе. Например, на поддомене moscow.test2d.ru указать адреса в Москве, а по ссылке spb.test2d.ru адреса в Санкт-Петербурге и т.д.
- изменение структуры или движка сайта. Пока вы работаете над архитектурой сайта, можно создать копию прежней версии и сделать на неё редирект. Это позволит сохранить позиции сайта в поисковой выдаче.
- переход на мобильную версию. Можно настроить редирект на версию сайта, которая адаптирована под мобильные устройства. Это будет полезно для посетителей, которые используют смартфоны или планшеты.
- несколько доменов в разных зонах. Предположим, вы разместили сайт на домене test2d.ru, а потом зарегистрировали такие же домены в зонах .COM, .ORG и .INFO. Для оптимизации трафика можно настроить редирект с доменов test2d.com, test2d.org и test2d.info на test2d.ru.
- авторизация. Пользователей, зарегистрированных на сайте, можно разделить на группы: например, администраторы, модераторы и посетители. В некоторых случаях для каждой из групп необходимо настроить редирект на нужную версию сайта. После авторизации каждая из групп будет видеть соответствующий контент.
Как работает редирект в PHP
Рассмотрим ситуацию, когда редирект настроен со страницы index-1.php на страницу index-2.php. Перенаправление действует по следующему алгоритму:
- Браузер запрашивает у сервера файл index-1.php.
- Сервер получает запрос от браузера и сообщает, что index-1.php больше не доступен. Браузеру нужно искать файл index-2.php.
- Браузер отправляет новый запрос к серверу, на котором расположен index-2.php.
- Браузер получает ответ и открывает страницу index-2.php.
Как настроить PHP-редирект
1. Откройте файл index.php.
2. Выберите тип редиректа, который вы хотите настроить:
Без задержки
3. Добавьте строки:
Вместо https://test2d.ru/index-2.php добавьте URL, на который должен вести редирект.
4. Сохраните изменения:

PHP location redirect
С задержкой
3. Добавьте строки:
Вместо https://test2d.ru/index-2.php добавьте URL, на который должен вести редирект.
4. Сохраните изменения:

Periodical readings PHP redirect
Готово, вы настроили редирект на сайт в PHP.
Популярные статьи
- Как указать (изменить) DNS-серверы для домена
- Я зарегистрировал домен, что дальше
- Как добавить запись типа A, AAAA, CNAME, MX, TXT, SRV для своего домена
- Что такое редирект: виды и возможности настройки
- Как создать почту со своим доменом
Как сделать редирект в PHP
В ситуациях, когда нужно, чтобы пользователь перешел по ссылке и попал на другой URL-адрес, на помощь приходит редирект. В качестве примера можно привести следующее: на сайте проходит временная акция. Пока действует предложение, потенциальный клиент будет перенаправляться на страницу акции. Или же идет работа по изменению внешнего вида сайта, но пока ведутся техничесие работы, нужно чтобы сайт работал. Для этого можно скопировать его прежний вариант на другой домен или поддомен. В таких случаях можно использовать настройку редиректа.
Что такое редирект
- 301 редирект — используется, когда страница окончательно перемещена на другой URL. При таком редиректе поисковики добавляют страниц в базу данных. Как новый вариант страницы (той, на которую попадает пользователь);
- 302 редирект — используется, когда страница перемещена временно. В этом случае поисковые системы добавляют в базу данных все варианты страницы: и старую, и новую.
Для чего нужен редирект
Редирект может понадобиться в следующих ситуациях:
- несколько доменов в разных доменных зонах. В качестве примера сайт размещен на домене primer.ru. При этом есть ещё несколько доменов: primer.com, primer.info и primer.biz. С доменов в зонах .COM, .INFO и .BIZ можно настроить редирект на primer.ru, чтобы у этого сайта росла посещаемость;
- при авторизации. На сайтах есть распеределения на группы, например администратор и посетитель. Пользователи в разных группах имеют разные привилегии, поэтому безопаснее сделать редирект для каждой группы на нужную версию сайта;
- изменение структуры ресурса. Пока вы меняете структуру сайта, можно создать копию старой версии и сделать на неё редирект;
- замена домена. После того как сайт перенесли на другой домен, старый домен некоторое время будет отображается в поисковике. Если сделать PHP-редирект, браузер автоматически будет направит пользователя на новый домен;
- перенос разделов на поддомены. Например, на странице вашего сайта primer.ru/ host был каталог товаров. И ассортимент был увеличен, значит нужно перенести этот раздел на поддомен host.primer.ru. В этом случае редирект настраивается с primer.ru/host на host.primer.ru;
- переход на мобильную версию. Если посетитель сайта использует планшет или мобильный телефон, с таким редиректом он попадёт на версию, которая адаптирована под мобильные устройства;
- замена движка сайта. При измене архитектуры сайта, появляется необходимость в настройке редиректа.
Переадресацию можно настроить несколькими способами:
- через файл .htaccess;
- с помощью скрипта редиректа PHP;
- средствами HTML.
Чем отличается редирект PHP от HTML
PHP — серверный язык программирования. Это значит, что переадресация будет срабатывать не в коде страницы, а в скрипте, который размещен на сервере. Благодаря этому снижается восприимчивость к фильтрам поисковых систем. А это в свою очередь добавление в код индексного файла скрипт перенаправления. HTML — это язык разметки веб-страниц. Перенаправление можно сделать с помощью метатега (используемые для передачи структурированных метаданных, как правило, размещаются в разделе веб-документа) , и редирект будет работать именно через код страницы.
Как работает редирект в PHP
Предположим, вы сделали редирект со страницы host.php на host1.php. Когда пользователь откроет страницу с редиректом, в системе произойдёт следующее:

- Браузер запросит файл стартовой страницы host.php с сервера;
- Сервер, получив запрос от браузера, сообщит, что файл host.php больше недоступен и браузер будет искать новый файл host1.php;
- Браузер отправит новый запрос к серверу, на котором находится host1.php, и получит ответ;
- Браузер отобразит страницу host1.php.
Как настроить PHP-редирект
Прописывать редирект на сайт в PHP нужно в индексном файле. Чаще всего он называется index.php. Для настройки вам понадобится функция header( ). Она выглядит так:
header($header)
Где $header — строка HTTP-заголовка, который вы будете использовать. Для редиректа нужно использовать заголовок Location — он указывает на адрес целевого сайта.
Чтобы настроить редирект PHP:
- Откройте индексный файл страницы, с которой нужно сделать редирект;
- Впишите туда следующее:
Где http://site.ru/index1.php — ссылка на индексный файл страницы, на которую ведёт редирект. Если на конечном сайте установлен SSL-сертификат, вместо http:// укажите https://. После этого сохраните изменения:
Как настроить редирект с задержкой
Иногда нужно, чтобы пользователь попал на страницу и только спустя несколько секунд перешел на конечный сайт. Такое перенаправление можно настроить в индексном файле с помощью функции sleep() .
Чтобы настроить переадресацию с задержкой, откройте индексный файл страницы, с которой нужно сделать редирект. Добавьте строку:
sleep(5);
5 — время ожидания в секундах. Полный код редиректа с задержкой будет выглядеть так:
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из раздел «Помощь и поддержка».
Как выполнить редирект с помощью PHP
От автора: редирект позволяет перенаправить браузер клиента на другой URL-адрес. Вы можете использовать его при переключении доменов, изменении структуры сайта или переходе на HTTPS. В этой статье я покажу вам, как выполнить редирект на другую страницу с помощью PHP. Я объясню, как именно PHP перенаправляет браузер, и покажу вам, что происходит под капотом.
Как работает базовый редирект?
Прежде чем мы углубимся в особенности редиректа с помощью PHP, давайте быстро разберемся, как именно работает редирект HTTP. Посмотрите на следующую диаграмму.

Давайте разберемся, что происходит на скриншоте выше:
Браузер клиента запрашивает определенную страницу с сервера. В приведенном выше примере клиент запросил содержимое файла index.php.
Сервер получает запрос файла index.php и хочет проинформировать клиента о том, что он больше не доступен или не перемещен куда-либо еще, и вместо этого ему следует искать новый файл: new_index.php. Сервер отправляет заголовок Location с новым URL-адресом вместе с кодом HTTP 301 или 302. Это HTTP-коды для редиректа.
Когда клиентский браузер обнаруживает код 301 или 302, он знает, что ему нужно инициировать другой запрос к новому URL-адресу для получения содержимого. Он инициирует запрос на извлечение файла new_index.php.
Наконец, сервер отправляет содержимое нового URL-адреса.
Вот как работает базовый редирект HTTP. В следующем разделе мы рассмотрим, как работает редирект PHP.
Как работает редирект в PHP
В PHP когда вы хотите перенаправить пользователя с одной страницы на другую, вам нужно использовать функцию header(). Эта функция позволяет отправлять необработанный HTTP-заголовок Location, который выполняет фактическое перенаправление, как мы рассмотрели в предыдущем разделе.
Как использовать функцию header
Давайте рассмотрим синтаксис функции header().
header ( $header , $replace , $http_response_code )
$header: Это строка заголовка HTTP, которую вы хотите использовать. В нашем случае мы будем использовать для перенаправления заголовок Location.
$replace: Это необязательный параметр, который указывает, должен ли заголовок заменить предыдущий аналогичный заголовок.
$http_response_code: Позволяет отправить определенный код ответа.
Теперь давайте рассмотрим следующий пример, чтобы понять, как все это работает вместе.
header ( «Location: //www.yoursite.com/new_index.php» ) ;
Когда приведенный выше скрипт выполняется, он перенаправляет браузер клиента на //www.yoursite.com/new_index.php. В фоновом режиме он отправляет необработанный HTTP-заголовок Location вместе с кодом состояния 302. Код состояния 302 используется для временного редиректа, но если вам нужен постоянный редирект, вы можете передать в третьем аргументе код 301, как показано в следующем фрагменте кода.
header ( «Location: //www.yoursite.com/new_index.php» , TRUE , 301 ) ;
Постоянный редирект 301 позволяет вам сообщить поисковым роботам, что страница больше не доступна, и ее можно заменить новой страницей.
Зачем использовать функцию Die() или Exit() после заголовка перенаправления?
Некоторые пользователи могли заметить, что я использовал в приведенном выше примере функцию exit(). На самом деле, обязательно использовать функцию exit() или die() сразу после заголовка перенаправления, чтобы остановить выполнение скрипта и избежать нежелательных результатов. Поэтому всегда рекомендуется использовать после перенаправления одну из этих функций.
Знаменитая ошибка: заголовки уже отправлены
Если вы опытный программист PHP, я уверен, что в какой-то момент в вашей повседневной разработки на PHP вы сталкивались с этой известной ошибкой. Однако для новичков возникновение этой ошибки действительно раздражает, поскольку ее действительно сложно отладить и исправить. В большинстве случаев они даже не подозревают, что это вызвано заголовком перенаправления.
Практическое правило заключается в том, что, когда вы используете в скрипте функцию header(), вы должны убедиться, что не отправляете перед ней какие-либо выходные данные. В противном случае PHP выдаст ошибку «headers are already sent». Это может произойти, даже если вы отправили перед использованием функции заголовка один пробел.
Заключение
В этом посте мы рассмотрели одну из важных функций PHP-программирования: редирект. Сначала мы описали основы редиректа HTTP, а затем я продемонстрировал, как это работает в PHP.
Автор: Sajal Soni
Редакция: Команда webformyself.
Все для начинающего вебмастера
Обучающие статьи и советы, как правильно сделать сайт и настроить сервер
Редирект на PHP для начинающего вебмастера

При разработке или обслуживании сайтов нередко возникает необходимости в создании скрипта, который бы делал перенаправление пользователей на другой адрес. Такое перенаправление называется редиректом. Выполнять перенаправление можно как на стороне сервера, так и на стороне клиента. Чтобы выполнить редирект на стороне клиента нужно использовать JavaScript. Но чаще возникает необходимость в выполнении перенаправления на стороне сервера. Для этого нужно сделать редирект на PHP, так как PHP это серверный язык, а значит, и перенаправление будет выполняться не в браузере пользователей, а непосредственно на сервере.
Реализация перенаправления пользователей на другой адрес посредством PHP более универсальный и гибкий подход. С помощью этого языка можно создать несколько видов редиректа: обновление, постоянное перенаправление (редирект 301) и временное перенаправление (редирект 302). Данная статья рассчитана в основном на новичков, которые пытаются найти способ реализации редиректа URL, когда это нельзя сделать другими распространенными методами, например, внеся изменения в файл htaccess.
Заголовок языка PHP функции
Теперь рассмотрим наглядный пример реализации перенаправления на PHP. Предположим, что имеется адрес «http://mywebsite.org/page1.php», к которому и нужно выполнить перенаправление. Для этого нужно в код страницы, с которой будет выполняться редирект вставить такой скрипт:
Чтобы лучше понять, как это работает, можно провести следующий эксперимент на локальном хостинге. Сначала нужно в текстовом редакторе создать файл «page1.php». Он может содержать, например, такой код:
echo "Hi this is page1"; ?>
После этого в том же текстовом редакторе нужно создать другой файл, который будет называться «startpage.php». Содержимое этого файла должно быть таким:
Теперь в адресной строке своего браузера нужно ввести URL «http://localhost/startpage.php». При загрузке страницы в браузере, этот адрес поменяется на «http://localhost/page1.php», а на экране появится надпись «Hi this is page1».
Очень часто в оформлении html-кода редиректа начинающие веб-мастера допускают ошибки. Приведем пример. Пусть имеется файл test.html, который содержит следующий код:
Ошибка перенаправления
