301 редирект на PHP как сделать редирект на страницу
Редиректы в PHP один из базовых инструментов web-разработки и SEO-оптимизации. Они позволяют автоматически перенаправлять пользователя с одной страницы на другую, сохранять поисковый трафик и корректно обрабатывать изменения структуры сайта. В этой статье разберём, как сделать редирект на PHP, чем отличается 301 редирект на PHP от временных перенаправлений и в каких случаях их использовать.
Что такое редирект на PHP и зачем он нужен
Редирект (redirect) это автоматическое перенаправление пользователя и поисковых роботов с одного URL на другой. Он используется в следующих ситуациях:
- Смена URL страницы (редирект со старого адреса на новый).
- Удаление или перенос контента.
- Переход с HTTP на HTTPS.
- Смена доменного имени проекта.
- Объединение дубликатов страниц.
- Перенаправление после отправки формы или авторизации.
Для PHP сайтов редирект чаще всего реализуется с помощью HTTP заголовков.
Виды редиректов в PHP
301 редирект на PHP (постоянный) сообщает браузеру и поисковым системам, что страница перенесена навсегда. Это самый важный тип редиректа для SEO, так как он передаёт почти весь ссылочный вес новой странице. Обычно используется при таких случаях как:
- URL изменился навсегда.
- Старая страница больше не будет использоваться.
- Выполняется SEO перенос сайта.
302 редирект (временный) сообщает, что перенаправление временное. Поисковые системы обычно не передают вес страницы.
Как сделать редирект на PHP с помощью header()
Самый распространённый способ использование функции header().
header("Location: /new-page.php");
exit;
В этом коде header() отправляет HTTP заголовок браузеру. Далее, exit завершает выполнение скрипта, чтобы код ниже не выполнялся.
Как сделать 301 редирект на PHP
Для SEO важно указать код состояния 301 Moved Permanently. Именно по этому мы передадим это в заголовок http запроса через функцию header().
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://learn-top.ru");
exit;
Этот вариант корректно сообщает поисковым системам, что страница перенесена навсегда.
Ошибки при использовании редиректа в PHP
Часто могут появиться ошибки и несрабатывание редиректа, если до вызова функции header() что то в проекте уже выводилось. Не важно, будет это html код, текст, или даже просто пробел. Во избежание ошибок нужно проверить чтоб до вызова редиректа ничего не могло выводиться.
PHP редирект vs .htaccess
Иногда возникает вопрос: что лучше — редирект на PHP или через .htaccess?
- PHP редирект подходит, если:
- Требуется логика (условия, авторизация).
- Редирект зависит от данных пользователя.
- .htaccess лучше, если:
- Нужен глобальный SEO-редирект.
- Редирект выполняется всегда и без условий.
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !learn-top.ru$ [NC]
RewriteRule ^(.*)$ https://learn-top/$1 [L,R=301]
Таким образом будет 301 редирект в .htaccess еще до выполнения php.
Заключение статьи
Редирект на PHP простой и эффективный инструмент, который используется как для логики сайта, так и для SEO. Правильная реализация 301 редиректа на PHP позволяет сохранить позиции в поисковых системах, избежать дублей страниц и улучшить пользовательский опыт. Главное корректно указывать HTTP код, не выводить данные до header() и всегда завершать скрипт.