Как сделать редирект в PHP
Редирект – это автоматическое перенаправление пользователя при переходе по ссылке на страницу с другим адресом. Как правило, данный процесс делается максимально незаметным. Редирект может использоваться для замены неактуальных страниц, корректировки содержимого сайта и многих других целей.
Виды редиректов:
- HTML
- JavaScript
- PHP
- .htaccess
PHP
Рассмотрим процесс редиректа в PHP. Основные его особенные черты: 1) большое количество способов; 2) процесс происходит в скрипте сервера; 3)поисковым системам сложнее распознавать редирект.
Конструкция, с помощью которой осуществляется перенаправление клиента, — header(). Именно она изменяет адрес в строке поиска.
header(‘Location: http://php.ru/’)
Есть много вариантов кода редиректов, но самые распространенные – 301, 302, 303. Если 301, то страница будет заменена навсегда. 302 – редирект страницы на определенное время, 303 – на неопределенное.
Подобный вариант текста программы редиректа:
header(‘Location: https://example.com’, true, 301);
exit()
Этот метод может выдать ошибку при использовании ранее в программе конструкций вывода. Это можно исправить, всего лишь введя одну строку в начале скрипта.
ob_start()
.htaccess
Редирект с помощью .htaccess– один из самых простых. В папке сайта нужно создать файл с названием .htaccess. Затем написать строки, включающие директиву ReWriteEngine.
Options +FollowSymLinks
RewriteEngine On
Редирект не будет работать без присутствия на хостинге модулей mod_alias. Также, обязательно должен быть прописан адрес страницы, на которую осуществляется перенаправление. При этом, заменяемую ссылку описывают только с помощью корня адреса сайта.
Redirect Permanent 301 /oldpage.phphttps://site/newpage.php
HTML
При необходимости перенаправить посетителя сайта html используется head и /head, внутри которого описывается другой мета-тег. Также, с помощью конструкции content определяется время перехода на другую страницу.
<head>
<meta http-equiv=»refresh» content=»1;URL=http://ab-w.net» />
</head>
JavaScript
Последний способ выполнения редиректа осуществляется с помощью JavaScript. Можно описать моментальный переход или с задержкой. Для этого применяем функцию write( ) к конструкции document.
В скобках повторяем конструкцию document, а далее используем функцию location, ведь необходимо провести операцию с адресом. Последний шаг первой строки – применение свойства href, который осуществляет переотправку клиента.
document.write(document.location.href)
document.location.href =
После «=» указываем адрес сайта, на который необходимо осуществить редирект.
Смешанные способы
Кроме того, сделать редирект страницы можно при помощи команды PHPecho«». Она имеет крайне широкое применение, и одним из её функций является редирект страницы.
<?php
echo «<meta http-equiv=»refresh» content=»5;URL=https://ida-freewares.ru»>»
Редирект будет таким же, каким был в способе через конструкцию header.
Кроме того, средствами PHP можно сделать редирект страницы с заданным условием. То есть страница, на которую будет отправлен пользователь, будет зависеть от его прописанного типажа.
if ($user_type == «subscriber») {$redirect_url = «/subscriber.html»;}
elseif ($user_type == «author») {$redirect_url = «/author.html»;}
elseif ($user_type == «admin») {$redirect_url = «/admin.html»;}
else {$redirect_url = «/registration.html»;}
То же самое распределение можно сделать с помощью зависимости значение – ключ (по принципу словарей в python). Получается, одному типу посетителей соответствует одна ссылка.
$redirect_url = array (
«subscriber» => «/subscriber.html»,
«author» => «/author.html»,
«admin» => «/admin.html»,
«newuser» => «/registration.html»
);
Редирект можно осуществлять множеством способов. Для разных требований и возможностей подходят несколько или один из них. Даже для новичков в этом деле найдется подходящий по сложности метод ред