PHP переадресация или 301 редирект php

301 редирект php

Недавно показывал как можно сделать переадресацию на htaccess теперь предлагаю вариант php переадресации (301 редирект php) - как альтернативу 301 редиректу сервера. Зачем это нужно? - а за тем что не везде и не всегда получается на htaccess сделать правильную переадресацию.

И так, для начала нужно написать условие при каком будет срабатывать переадресация. У wordpress пишем код в файл header.php или в любой другой файл вашей темы выше функции get_header() в самое начало, до тегов хтмл. Код будет такого плана:

<?php
if(is_category(2)){//условие срабатывания переадресации
header("HTTP/1.1 301 Moved Permanently"); //ответ сервера
header("Location: http://www.vashsite.ru/cat3/"); // адрес страницы на которую направляем
exit();
}
?>

Если вам нужна php переадресация на wordpress в локальном месте, например хочем перенаправить из одной категории на главную страницу, можно записать выше приведенный код в любой файл темы который срабатывает на вывод категории (например category.php) выше кода вызова шапки get_header();

 

Как работает php переадресация в строке ответа

При пхп переадресации мы получаем точно такой ответ сервера, как будто мы сделали это через конфиг сервера, с поправкой на то скорость обработки будет немного ниже. Скриншот ответа сервера в Хроме:

301 редирект php

Все тот же редирект 301 только реализован на ПХП.

Зачем использовать 301 редирект php

Бывает ситуация, когда нужно зафиксить всю категорию, таксономию, метку ВП или заблокировать Custum Post Type не удаляя их. Например, мы перенесли контент, но сылки уже проиндексированные в этом случае нам поможет 301 редирект php, который мы сможем вставить в любое место. Конечно, такой редирект уступает по производительности редиректу с настроек сервера, но писать большушую маску под таксономию или CPT очень большой геморой.

Если не срабатывает 301 редирект php ?

Редирект на ПХП может не срабатывать по причине не срабатывания условия, так что для начала нужно:

  1. Проверить условие на пхп, например забросить туда echo "Test";
  2. Если условие срабатывает, то нужно смотреть где находится наш код переадресации, если ниже тегов хтмл то это и есть наша проблема. Надо поднять выше всего

Благодаря возможности перенаправлять сайт из PHP мы можем реализовать механизм редиректов там где htaccess не справляется, точнее мы не можем справится 🙂

Если у вас остались вопросы пишите их в комментариях или мне на форму обратной связи.

Комментарии к записи «PHP переадресация или 301 редирект php»:
  1. Анатолий:

    Все отлично, 301 редирект php работает норм. да и код ошибки действительно правильный приходит в браузер, а значит и гугл бот видит правильно

  2. Игорь:

    Воспользовался вашим кодом для переадресации ПХП он работает, но у меня получилось зацикливание сервера. Браузер пишет что произошла серия переадресаций которая никогда не закончится. В чем может быть проблема подскажите пожайлуста, чет никак не могу решить эту ошибку.

  3. Иван:

    +1, все понятно расписал о PHP переадресации. 301 редирект действительно идет в ответе сервера, то есть боты будут знать что страницу переместили. На пхп это делать намного удобнее.

  4. Qwant:

    PHP переадресация рулит! Сделал 301 редирект за 5 минут, все работает. До этого мучился через хтацес, ничерта не получилось. А тут бац и все работает. Большое спасибо

  5. Михаил:

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

Сделать заказ
Онлайн помощь по WordPress