Как сделать редирект в 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 — это язык разметки веб-страниц. Перенаправление можно сделать с помощью метатега (используемые для передачи структурированных метаданных, как правило, размещаются в разделе <head> веб-документа) , и редирект будет работать именно через код страницы.

Как работает редирект в PHP

Предположим, вы сделали редирект со страницы host.php на host1.php. Когда пользователь откроет страницу с редиректом, в системе произойдёт следующее:

  1. Браузер запросит файл стартовой страницы host.php с сервера;
  2. Сервер, получив запрос от браузера, сообщит, что файл host.php больше недоступен и браузер будет искать новый файл host1.php;
  3. Браузер отправит новый запрос к серверу, на котором находится host1.php, и получит ответ;
  4. Браузер отобразит страницу host1.php.
Logical web

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

Прописывать редирект на сайт в PHP нужно в индексном файле. Чаще всего он называется index.php. Для настройки вам понадобится функция header( ). Она выглядит так:

header($header)

Где $header — строка HTTP-заголовка, который вы будете использовать. Для редиректа нужно использовать заголовок Location — он указывает на адрес целевого сайта.

Чтобы настроить редирект PHP:

  1. Откройте индексный файл страницы, с которой нужно сделать редирект;
  2. Впишите туда следующее:
<?php // index.php header(“Location: http://site.ru/index1.php”); exit( ); ?>

Где http://site.ru/index1.php — ссылка на индексный файл страницы, на которую ведёт редирект. Если на конечном сайте установлен SSL-сертификат, вместо http:// укажите https://. После этого сохраните изменения:

<?php
// index.phpц
header("Location: http://site.ru/index1.php");
exit( );
?> 

Как настроить редирект с задержкой

Иногда нужно, чтобы пользователь попал на страницу и только спустя несколько секунд перешел на конечный сайт. Такое перенаправление можно настроить в индексном файле с помощью функции sleep().

Чтобы настроить переадресацию с задержкой, откройте индексный файл страницы, с которой нужно сделать редирект. Добавьте строку:

sleep(5);

5 — время ожидания в секундах. Полный код редиректа с задержкой будет выглядеть так:

<?php
// index.php
sleep (5);
header("Location: http://site.ru/index1.php");
exit( );
?>

Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из панели управления хостингом, раздел «Помощь и поддержка».