Редирект с помощью PHP

Редирект с помощью PHP

Перенаправление в студии

Здравствуйте, уважаемые читатели!

Довольно часто в работе веб-администратора встречаются ситуации, в которых необходимо выполнить переадресацию страницы. Это может потребоваться при обновлении сайта или для исключения необходимости открытия страницы «404», которая негативно влияет на привлекательность ресурса. Например, если страница была удалена, можно выполнить автоматическое перенаправление на главную. Для данных целей могут быть использованы различные практические способы, в числе которых PHP-редирект, о котором и пойдет дальше речь.

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

На практике используется две схемы переадресации средствами PHP. Наиболее простой и распространенной из них — использование специальной функции PHP «header()», в которой указываются все необходимые параметры для корректного перенаправления. При этом, как правило, используется HTTP-код «302».

Синтаксис написания функции header() имеет следующий вид:

void header ( string string [, bool replace = true [, int http_response_code]] );

Пример:

<?php
header('Location: /stranitca.php');
?>

В этом случае выполняется перенаправление на страницу stranitca.php . Аналогично можно выполнить переадресацию пользователя на другой сайт (если, например, был выполнен перенос сайта на новый домен):

<?php
header('Location: http://www.drugoy_site.com/');
?>

Для того, чтобы при переадресации сохранить параметры страницы, имеющие значение для поисковых систем, рекомендуется выстраивать конструкцию с кодом «301». Для этого вводят статус «301 Moved Permanently», который фактически укажет поисковым роботам на то, что имело место перенесение страницы, и ее показатели в выдаче не будут потеряны.

В этом случае, конструкция будет иметь следующий вид:

<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.drugoy_site.com/newdir/stranitca.php");
exit();
?>


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

<meta http-equiv="refresh" content="SECONDS;URL=REDIRECT_URL">

Пример:

<?php
echo '<meta http-equiv="refresh" content="0;URL=/stranitca.php">';
?>

При этом, обратите внимание на параметр «content», определяющий время, после которого будет осуществлен PHP-редирект. В данном примере он определен, как ноль, что указывает на мгновенное перенаправление на вновь созданную страницу.

Дискуссия по теме