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 Рейтинг 4.84 (16 Голосов)

☕ Хотите выразить благодарность автору? Поделитесь с друзьями!

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

0 # Лоус 26.03.2018 13:46
Про refresh - клево не знал
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Marcia 30.08.2019 12:58
Я решил добавить этот онлайн ресурс в избранное !!!
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Mari 02.03.2021 11:38
I read this paragraph completely concerning the comparison of most up-to-date and previous technologies, it's amazing article.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Marisol 09.03.2021 01:31
Hi! Do you know if they make any plugins to protect
against hackers? I'm kinda paranoid about losing everything. It was be hard on. Any tips?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Игорь (Администратор) 11.03.2021 22:07
Этот вопрос, конечно, не совсем по теме. Но, начните с бэкапов в хостинге (если я правильно понимаю, то речь о сайте). Так же периодически сохраняйте бэкапы к себе. Плюс у многих CMS существуют плагины для защиты.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Porter 09.03.2021 03:33
It's an amazing article in support of all the web visitors; they will obtain benefit
from it I am sure.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору

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

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



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