Как сделать редирект в 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. Когда пользователь откроет страницу с редиректом, в системе произойдёт следующее:
- Браузер запросит файл стартовой страницы host.php с сервера;
- Сервер, получив запрос от браузера, сообщит, что файл host.php больше недоступен и браузер будет искать новый файл host1.php;
- Браузер отправит новый запрос к серверу, на котором находится host1.php, и получит ответ;
- Браузер отобразит страницу host1.php.
Как настроить PHP-редирект
Прописывать редирект на сайт в PHP нужно в индексном файле. Чаще всего он называется index.php. Для настройки вам понадобится функция header( ). Она выглядит так:
Где $header — строка HTTP-заголовка, который вы будете использовать. Для редиректа нужно использовать заголовок Location — он указывает на адрес целевого сайта.
Чтобы настроить редирект PHP:
- Откройте индексный файл страницы, с которой нужно сделать редирект;
- Впишите туда следующее:
Где http://site.ru/index1.php — ссылка на индексный файл страницы, на которую ведёт редирект. Если на конечном сайте установлен SSL-сертификат, вместо http:// укажите https://. После этого сохраните изменения:
Как настроить редирект с задержкой
Иногда нужно, чтобы пользователь попал на страницу и только спустя несколько секунд перешел на конечный сайт. Такое перенаправление можно настроить в индексном файле с помощью функции sleep() .
Чтобы настроить переадресацию с задержкой, откройте индексный файл страницы, с которой нужно сделать редирект. Добавьте строку:
5 — время ожидания в секундах. Полный код редиректа с задержкой будет выглядеть так:
Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из раздел «Помощь и поддержка».
Перенаправление на другую страницу с помощью PHP, JavaScript или HTML (Redirect)
Здравствуйте, уважаемые посетители блога BlogGood.ru!
Сегодня мой блог пополнится еще одной полезной статьей для веб-мастеров.
В этой статье я хочу рассказать, как осуществить перенаправление на другую веб-страницу пользователя с помощью PHP, JavaScript или HTML.
Начнем, пожалуй, с PHP.
○ Перенаправление на другую веб-страницу с помощью PHP
Если вы желаете перенаправить пользователя сразу на другую веб-страницу, используйте вот этот код :
https://bloggood.ru/ — это адрес сайта, на который перенаправится пользователь.
→ перенаправление с задержкой в указанные секунды
Если вы желаете перенаправить пользователя не сразу, а через несколько секунд, тогда используйте вот такой код:
15 – это время, показывающее через сколько секунд пользователь отправится на другую веб-страницу.
https://bloggood.ru/ — это адрес сайта, на который перенаправится пользователь.
○ Перенаправление на другую веб-страницу с помощью JavaScript
https://bloggood.ru/ — это адрес сайта, на который перенаправится пользователь.
→ перенаправление с задержкой в указанные секунды
https://bloggood.ru/ — это адрес сайта, на который перенаправится пользователь.
15000 – это миллисекунды, через которые перенаправится пользователь на другую веб-страницу. Этот параметр задается не в секундах, а в миллисекундах.
К сведенью: 1 секунда = 1000 миллисекунды.
Значит, 15 000 миллисекунд = 15 секунд.
○ Перенаправление на другую веб-страницу с помощью HTML
В HTML для перенаправления пользователя используют специальный мета-тег :
0 – это секунды, через которые нужно перенаправить пользователя на другую страницу. В данном примере стоит « 0 », это значит, что пользователя перенаправит сразу.
https://bloggood.ru/ — это адрес сайта, на который перенаправится пользователь.
→ перенаправление с задержкой в указанные секунды
Чтобы перенаправить пользователя через определенное время, например, через 15 секунд, достаточно «0» исправить на «15»:
PHP редирект — перенаправление на другую страницу
В рамках данной статьи, я расскажу вам про PHP редирект или же перенаправление на другую страницу.
Периодически возникают такие ситуации, когда нужно на серверной стороне организовать переадресацию на другой url (внешние ссылки, перенос адресов страниц и прочее). И делается это на самом деле очень просто и без каких-либо проблем.
Редирект в php осуществляется с помощью функции header с передачей соответствующих параметров. Вот описание самой функции:
Общий редирект в php выглядит так:
Как видите, все очень просто, всего лишь нужно указать параметр «Location:» а затем указать необходимый url адрес. Учтите, что по умолчанию такой редирект будет с кодом 302 (временно перемещено) или с тем кодом, который был установлен так же с помощью функции header (пример чуть ниже будет). Так же учтите, что переадресация на другой url должна осуществляться только в том случае, если до этого не было сгенерировано никакого кода html на странице. То есть до вызовов echo, print_r и прочего. И после этого так же не должен генерироваться html. В противном случае, это может приводить к ошибкам. Если же html-нужен, то лучше воспользуйтесь задержкой.
Редирект с задержкой в php:
Редирект с задержкой в php позволяет вам отображать на странице какой-то собственный текст в течении некоторого времени до реальной переадресации. Обычно, это привычное «через 5 секунд вы будете перенаправлены, если этого не произошло, щелкните по этой ссылке».
Сделать это можно с помощью двух методов.
В данном случае, редирект осуществит сам браузер через 5 секунд. Сделать такое можно и просто разместив специальный мета-тег в блоке head html-страницы.
Результат будет одинаковым. Однако, полезно знать альтернативные методы, так как некоторые браузеры такое могут не поддерживать. В крайнем случае, вы всегда можете использовать код javascript для переадресации, установив в «window.location» нужный url адрес.
Редирект в php с кодом 301
Периодически необходимо осуществлять редирект с кодом 301 (постоянно перенесено), например, если у вас изменился механизм генерации ЧПУ ссылок. В такой ситуации можно использовать два варианта:
Как видите, просто указали необходимый код http.
И второй вариант, аналогичный по смыслу, но может быть полезным, если установка кода и редирект должны осуществляться в разных местах.
Первая строка указывает код http, а вторая, собственно, задает адрес. В большинстве случаев, проблем не возникнет. Однако, если у вас используется режим FastCGI, то вместо «HTTP/1.1 301 Moved Permanently» может потребоваться написать «Status: 301 Moved Permanently«.
Как сделать редирект в PHP
Редирект – это автоматическое перенаправление пользователя при переходе по ссылке на страницу с другим адресом. Как правило, данный процесс делается максимально незаметным. Редирект может использоваться для замены неактуальных страниц, корректировки содержимого сайта и многих других целей.
Виды редиректов:
- HTML
- JavaScript
- PHP
- .htaccess
Рассмотрим процесс редиректа в PHP. Основные его особенные черты: 1) большое количество способов; 2) процесс происходит в скрипте сервера; 3)поисковым системам сложнее распознавать редирект.
Конструкция, с помощью которой осуществляется перенаправление клиента, — header(). Именно она изменяет адрес в строке поиска.
Есть много вариантов кода редиректов, но самые распространенные – 301, 302, 303. Если 301, то страница будет заменена навсегда. 302 – редирект страницы на определенное время, 303 – на неопределенное.
Подобный вариант текста программы редиректа:
Этот метод может выдать ошибку при использовании ранее в программе конструкций вывода. Это можно исправить, всего лишь введя одну строку в начале скрипта.
.htaccess
Редирект с помощью .htaccess– один из самых простых. В папке сайта нужно создать файл с названием .htaccess. Затем написать строки, включающие директиву ReWriteEngine.
Options +FollowSymLinks
RewriteEngine On
Редирект не будет работать без присутствия на хостинге модулей mod_alias. Также, обязательно должен быть прописан адрес страницы, на которую осуществляется перенаправление. При этом, заменяемую ссылку описывают только с помощью корня адреса сайта.
Redirect Permanent 301 /oldpage.phphttps://site/newpage.php
При необходимости перенаправить посетителя сайта html используется head и /head, внутри которого описывается другой мета-тег. Также, с помощью конструкции content определяется время перехода на другую страницу.
JavaScript
Последний способ выполнения редиректа осуществляется с помощью JavaScript. Можно описать моментальный переход или с задержкой. Для этого применяем функцию write( ) к конструкции document.
В скобках повторяем конструкцию document, а далее используем функцию location, ведь необходимо провести операцию с адресом. Последний шаг первой строки – применение свойства href, который осуществляет переотправку клиента.
После «=» указываем адрес сайта, на который необходимо осуществить редирект.
Смешанные способы
Кроме того, сделать редирект страницы можно при помощи команды PHPecho«». Она имеет крайне широкое применение, и одним из её функций является редирект страницы.
Редирект будет таким же, каким был в способе через конструкцию header.
Кроме того, средствами PHP можно сделать редирект страницы с заданным условием. То есть страница, на которую будет отправлен пользователь, будет зависеть от его прописанного типажа.
То же самое распределение можно сделать с помощью зависимости значение – ключ (по принципу словарей в python). Получается, одному типу посетителей соответствует одна ссылка.
Редирект можно осуществлять множеством способов. Для разных требований и возможностей подходят несколько или один из них. Даже для новичков в этом деле найдется подходящий по сложности метод ред