Redirect pages in php

Как сделать редирект в PHP

Читайте нашу статью, чтобы узнать, как сделать редирект PHP.

Иногда нужно, чтобы пользователь, который перешёл по ссылке, попал на другой URL-адрес . Предположим, вы делаете редизайн сайта: меняете цветовое оформление, перемещаете разделы на странице, добавляете новый функционал. Но пока работа не закончена, нужно, чтобы сайт продолжал работать. В этом случае можно скопировать его прежний вариант на другой домен или поддомен. Также бывает, что на сайте проходит временная акция. Пока действует предложение, вы хотите перенаправлять клиентов на страницу акции. В таких случаях поможет настройка редиректа.

Что такое редирект

Редирект — это перенаправление пользователя с одной страницы на другую. Причём редирект можно настроить как на разные страницы одного сайта, так и на страницу другого сайта.

  • 301 редирект — используется, когда страница окончательно перемещена на другой URL. При таком редиректе поисковики индексируют только новый вариант страницы — той, на которую попадает пользователь.
  • 302 редирект — используется, когда страница перемещена временно. В этом случае поисковые системы индексируют все варианты страницы: и старую, и новую.

Как сделать редирект в PHP 1

PHP location redirect

Для чего нужен редирект

Редирект может понадобиться в следующих ситуациях:

  • замена движка сайта. Когда меняется архитектура сайта, появляется необходимость в настройке редиректа;
  • замена домена. После того как вы перенесли сайт на другой домен, прежний домен некоторое время ещё отображается в поисковике. Если сделать PHP-редирект, поисковик автоматически направит пользователя на новый домен;
  • изменение структуры ресурса. Пока вы меняете структуру сайта, можно создать копию старой версии и сделать на неё редирект;
  • при авторизации. Часто пользователи сайта разделяются на группы, например администратор и посетитель. Пользователи в разных группах имеют разные привилегии, поэтому безопаснее сделать редирект для каждой группы на нужную версию сайта;
  • переход на мобильную версию. Если посетитель сайта использует планшет или мобильный телефон, с таким редиректом он попадёт на версию, которая адаптирована под мобильные устройства;
  • перенос разделов на поддомены. Например, на странице вашего сайта site.ru/shop был каталог товаров. Но ассортимент расширялся, и со временем понадобилось перенести этот раздел на поддомен shop.site.ru. В этом случае редирект настраивается с site.ru/shop на shop.site.ru;
  • несколько доменов в разных доменных зонах. Предположим, вы разместили сайт на домене site.ru. При этом у вас есть ещё несколько доменов: site.com, site.info и site.biz. С доменов в зонах .com, .info и .biz можно настроить редирект на site.ru, чтобы у этого сайта росла посещаемость.
Читайте также:  Html table cellpadding top

Как сделать редирект в PHP 2

Redirect PHP URL HTTP

Переадресацию можно настроить несколькими способами:

PHP — серверный язык программирования. Это значит, что переадресация будет срабатывать не в коде страницы, а в скрипте, который размещен на сервере. По сути, вы добавляете в код индексного файла скрипт перенаправления. HTML — это язык разметки веб-страниц. Перенаправление можно сделать с помощью метатега, и редирект будет работать именно через код страницы.

Главная особенность редиректа на PHP в том, что переадресация прописана не в коде странице, а с помощью скрипта на сервере. Благодаря этому снижается восприимчивость к фильтрам поисковых систем.

Ниже мы подробнее рассмотрим принцип работы и настройку редиректа в PHP.

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

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

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

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

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

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

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

Как сделать редирект в PHP 3

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

Готово, вы настроили редирект.

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

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

Чтобы настроить переадресацию с задержкой:

Как сделать редирект в PHP 4

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

Готово, вы настроили редирект c задержкой.

Источник

How to Redirect a Web Page with PHP

This short snippet will show you multiple ways of redirecting a web page with PHP.

So, you can achieve redirection in PHP by following the guidelines below.

Using the header() Function

This is an inbuilt PHP function that is used for sending a raw HTTP header towards the client.

The syntax of the header() function is as follows:

header( $header, $replace, $http_response_code )

Also, it is likely to apply this function for sending a new HTTP header, but one should send it to the browser prior to any text or HTML.

Let’s see how to redirect a web page using the header() function:

 header('Location: //www.w3docs.com'); // or die(); exit(); ?>

As you can notice, exit() is used in the example above. It is applied to prevent the page from showing up the content remained (for instance, prohibited pages).

Also, you can use the header() function with ob_start() and ob_end_flush() , like this:

 ob_start(); //this should be first line of your page header('Location: target-page.php'); ob_end_flush(); //this should be last line of your page

Using a Helper Function

Here, we will demonstrate how to use a helper function for redirecting a web page. Here is an example:

 function Redirect($url, $permanent = false) < header('Location: ' . $url, true, $permanent ? 301 : 302); exit(); > Redirect('//www.w3docs.com/', false);

All HTTP status codes are listed at HTTP Status Messages

Note that this function doesn’t support 303 status code!

Let’s check out a more flexible example:

 function redirect($url, $statusCode = 303) < header('Location: ' . $url, true, $statusCode); die(); >

In some circumstances, while running in CLI (redirection won’t take place) or when the webserver is running PHP as a (F) CGI, a previously set Statusheader should be set to redirect accurately.

 function Redirect($url, $code = 302) < if (strncmp('cli', PHP_SAPI, 3) !== 0) < if (headers_sent() !== true) < if (strlen(session_id()) > 0) < // if using sessions session_regenerate_id(true); // avoids session fixation attacks session_write_close(); // avoids having sessions lock other requests > if (strncmp('cgi', PHP_SAPI, 3) === 0) < header(sprintf('Status: %03u', $code), true, $code); > header('Location: ' . $url, true, preg_match('~^30[1237]$~', $code) > 0 ? $code : 302); > exit(); > > ?>

JavaScript via PHP

Here, we will provide you with an alternative method of redirection implementing JavaScript via PHP. In JavaScript, there is a windows.location object that is implemented for getting the current URL and redirecting the browser towards a new webpage. This object encompasses essential information about a page (for example, href, a hostname, and so on).

This is how to redirect a web page using window.location:

html> html> head> title>window.location function title> head> body> p id="demo"> p> script> document.getElementById("demo").innerHTML = "URL: " + window.location.href + "
"
; document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + "Hostname: " + window.location.hostname + "
"
; document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + "Protocol: " + window.location.protocol + "
"
;
script> body> html>

To conclude, let’s assume that in this short tutorial, we provided you with multiple methods to redirect a web page with PHP. Also, you can find information on how to redirect web pages with HTML, JavaScript, Apache and Node.js.

Источник

How to Redirect a Web Page with PHP

This short snippet will show you multiple ways of redirecting a web page with PHP.

So, you can achieve redirection in PHP by following the guidelines below.

Using the header() Function

This is an inbuilt PHP function that is used for sending a raw HTTP header towards the client.

The syntax of the header() function is as follows:

header( $header, $replace, $http_response_code )

Also, it is likely to apply this function for sending a new HTTP header, but one should send it to the browser prior to any text or HTML.

Let’s see how to redirect a web page using the header() function:

 header('Location: //www.w3docs.com'); // or die(); exit(); ?>

As you can notice, exit() is used in the example above. It is applied to prevent the page from showing up the content remained (for instance, prohibited pages).

Also, you can use the header() function with ob_start() and ob_end_flush() , like this:

 ob_start(); //this should be first line of your page header('Location: target-page.php'); ob_end_flush(); //this should be last line of your page

Using a Helper Function

Here, we will demonstrate how to use a helper function for redirecting a web page. Here is an example:

 function Redirect($url, $permanent = false) < header('Location: ' . $url, true, $permanent ? 301 : 302); exit(); > Redirect('//www.w3docs.com/', false);

All HTTP status codes are listed at HTTP Status Messages

Note that this function doesn’t support 303 status code!

Let’s check out a more flexible example:

 function redirect($url, $statusCode = 303) < header('Location: ' . $url, true, $statusCode); die(); >

In some circumstances, while running in CLI (redirection won’t take place) or when the webserver is running PHP as a (F) CGI, a previously set Statusheader should be set to redirect accurately.

 function Redirect($url, $code = 302) < if (strncmp('cli', PHP_SAPI, 3) !== 0) < if (headers_sent() !== true) < if (strlen(session_id()) > 0) < // if using sessions session_regenerate_id(true); // avoids session fixation attacks session_write_close(); // avoids having sessions lock other requests > if (strncmp('cgi', PHP_SAPI, 3) === 0) < header(sprintf('Status: %03u', $code), true, $code); > header('Location: ' . $url, true, preg_match('~^30[1237]$~', $code) > 0 ? $code : 302); > exit(); > > ?>

JavaScript via PHP

Here, we will provide you with an alternative method of redirection implementing JavaScript via PHP. In JavaScript, there is a windows.location object that is implemented for getting the current URL and redirecting the browser towards a new webpage. This object encompasses essential information about a page (for example, href, a hostname, and so on).

This is how to redirect a web page using window.location:

html> html> head> title>window.location function title> head> body> p id="demo"> p> script> document.getElementById("demo").innerHTML = "URL: " + window.location.href + "
"
; document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + "Hostname: " + window.location.hostname + "
"
; document.getElementById("demo").innerHTML = document.getElementById("demo").innerHTML + "Protocol: " + window.location.protocol + "
"
;
script> body> html>

To conclude, let’s assume that in this short tutorial, we provided you with multiple methods to redirect a web page with PHP. Also, you can find information on how to redirect web pages with HTML, JavaScript, Apache and Node.js.

Источник

Оцените статью