PHP Редирект. Перенаправление запросов

PHP Редирект. Перенаправление запросовРедиректом (redirect) называется перенаправление клиента с одной страницы на другую.

Простой пример редиректа на php:

[php]
header(«Location: http://jcover.ru/»);
[/php]

ВАЖНО! Заголовки должны быть указаны до какого-либо вывода текста на странице.

В противном случае вы получите ошибку «Cannot send headers; headers already sent», при том даже случайный пробел приводит к такому результату, поэтому хорошим стандартом оформления кода является привычка «опускать» последний закрывающий тэг php «?>», тогда неловко оставленные лишние пробелы попадают в интерпретатор php как часть кода, а не в html разметку страницы.

Немного о PHP редиректах

Редирект выполняется с помощью специального заголовка «Location». Когда браузер получает такой заголовок в ответе веб-сервера, он перенаправляется на указанный в нем адрес, считая что требуемый ресурс теперь находится там.

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

Другие виды редиректа:

301 redirect — перенаправление через статус 301 (Moved Permanently), применяется при переезде сайта с одного домена на другой, этот редирект понимают поисковые роботы именно как «переезд» сайта.

javascript-редирект устанавливается с помощью переназначения аттрибута window.location.

пример:

[javascript]
window.location = «http://jcover.ru/»;
[/javascript]

Такой редирект выгодно отличается от php, так как выполняется не сразу, а в тот момент, когда будет вызван в js-коде на странице. То есть, он может быть как отложен, так и быть реакций на какие-то действия пользователя на этой странице.

Но таким редиректом злоупотреблять не стоит, во многих браузерах js-перенаправление считается подозрительным поведением, так как javascript код легко встраивается злоумышленником на сайт при наличии уязвимостей, связанных с недостаточной фильтрацией входящих данных.

Оставить комментарий