RizVN Login



PHP редирект - перенаправление на другую страницу

PHP редирект - перенаправление на другую страницуВ рамках данной статьи, я расскажу вам про PHP редирект или же перенаправление на другую страницу.

Периодически возникают такие ситуации, когда нужно на серверной стороне организовать переадресацию на другой url (внешние ссылки, перенос адресов страниц и прочее). И делается это на самом деле очень просто и без каких-либо проблем.

Редирект в php осуществляется с помощью функции header с передачей соответствующих параметров. Вот описание самой функции:

<?php
void header(string string [, bool replace [, int http_response_code]]))

Общий редирект в php выглядит так:

<?php
// header('Location: url-адрес сайта');
// Переадресация на главную страницу данного сайта
header('Location: ida-freewares.ru');

Как видите, все очень просто, всего лишь нужно указать параметр "Location:" а затем указать необходимый url адрес. Учтите, что по умолчанию такой редирект будет с кодом 302 (временно перемещено) или с тем кодом, который был установлен так же с помощью функции header (пример чуть ниже будет). Так же учтите, что переадресация на другой url должна осуществляться только в том случае, если до этого не было сгенерировано никакого кода html на странице. То есть до вызовов echo, print_r и прочего. И после этого так же не должен генерироваться html. В противном случае, это может приводить к ошибкам. Если же html-нужен, то лучше воспользуйтесь задержкой.

Редирект с задержкой в php:

Редирект с задержкой в php позволяет вам отображать на странице какой-то собственный текст в течении некоторого времени до реальной переадресации. Обычно, это привычное "через 5 секунд вы будете перенаправлены, если этого не произошло, щелкните по этой ссылке".

Сделать это можно с помощью двух методов.

<?php
header('Refresh: 5; url=https://ida-freewares.ru/');
echo 'Через 5 секунд вы будете перенаправлены на главную страницу сайта';

В данном случае, редирект осуществит сам браузер через 5 секунд. Сделать такое можно и просто разместив специальный мета-тег в блоке head html-страницы.

<?php
echo '<meta http-equiv="refresh" content="5;URL=https://ida-freewares.ru">';

Результат будет одинаковым. Однако, полезно знать альтернативные методы, так как некоторые браузеры такое могут не поддерживать. В крайнем случае, вы всегда можете использовать код javascript для переадресации, установив в "window.location" нужный url адрес.

Редирект в php с кодом 301

Периодически необходимо осуществлять редирект с кодом 301 (постоянно перенесено), например, если у вас изменился механизм генерации ЧПУ ссылок. В такой ситуации можно использовать два варианта:

<?php
header( 'Location: http://ida-freewares.ru/', true, 301 );

Как видите, просто указали необходимый код http.

И второй вариант, аналогичный по смыслу, но может быть полезным, если установка кода и редирект должны осуществляться в разных местах.

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://ida-freewares.ru/');

Первая строка указывает код http, а вторая, собственно, задает адрес. В большинстве случаев, проблем не возникнет. Однако, если у вас используется режим FastCGI, то вместо "HTTP/1.1 301 Moved Permanently" может потребоваться написать "Status: 301 Moved Permanently".

Теперь, вы знаете, как сделать php редирект для разных случаев.

1 1 1 1 1 1 1 1 1 1 Рейтинг 5.00 (1 Голос)

Комментарии / отзывы  

0 # Лоус 26.03.2018 13:46
Про refresh - клево не знал
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору

Добавить комментарий / отзыв

Комментарий - это вежливое и наполненное смыслом сообщение (правила).



* Нажимая на кнопку "Отправить", Вы соглашаетесь с политикой конфиденциальности.
Каталог программ