301 редирект на PHP

  • PHP
  • 13 июля 2022
  • 45

Введение

Иногда требуется сделать 301 редирект непосредственно на языке программирования PHP, это бывает когда редирект задается динамически, либо влияют другие факторы к примеру, когда нет возможности задать редирект в файле .htaccess.

Примеры

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

header("HTTP/1.1 301 Moved Permanently");
header("Location: https://domain.by/page-two.html");
exit();

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

if ($_SERVER['REQUEST_URI'] == '/?feed=rss2' ||
    $_SERVER['REQUEST_URI'] == '/?p=2' ||
    $_SERVER['REQUEST_URI'] == '/?page_id=2' ||
    $_SERVER['REQUEST_URI'] == '/test/page/' ||
    $_SERVER['REQUEST_URI'] == '/?trk=organization-update_share-update_update-text' ||
    $_SERVER['REQUEST_URI'] == '/?cat=1')
{
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: https://domain.by');
    exit();
}