Редирект
Редирект — автоматическое перенаправление пользователей с одного сайта на другой. Выглядит это следующим образом — пользователь набирает в адресной строке браузера один адрес, а оказывается на сайте, адрес которого совсем другой. Кроме собственно процесса, редиректом называется скрипт, выполняя который, браузер перенаправляет пользователя на другой сайт.
Пример использования редиректа:
- Владелец сайта покупает более красивое доменное имя.
- редиректа происходит автоматический переход пользователей на новый сайт даже в том случае, если они обращаются по прежнему адресу.
- склейка доменных имён.
- При перемещении страниц или разделов сайта. Редирект применяется для переадресации пользователей на новый, правильный адрес страницы или раздела.
- Для периодического обновления страницы. Обновление страницы, своего рода частный случай редиректа страницы на саму себя, но с задержкой по времени! Полезная возможность на сайтах с текстовыми
онлайн-трансляциями , чатах.
Способы использования редиректа:
Редирект можно сделать несколькими способами, а именно используя определенные инструменты.
1. При помощи JavaScript:
Поскольку JavaScript имеет полный инструментарий для осуществления редиректа. При помощи них можно осуществлять автоматический переход на нужный URL.
<script language="javascript" type="text/javascript"> document.location="http://sait.ru/"; //первый вариант location.replace("http://sait.ru/"); //второй вариант window.location.reload("http://sait.ru/"); //третий вариант document.location.replace("http://sait.ru/");//четвертый вариант location="http://sait.ru/";//пятый вариант setTimeout( 'location="http://sait.ru/";', 10000 );//шестой вариант //с заданием интервала (1=1мс) </script>
Однако следует учитывать и минусы использования этого метода:
- Страница, с которой осуществляется переход никуда не девается. Она должна быть обязательно.
- Страница, с которой осуществляется редирект сначала полностью загрузиться, а потом уже с нее идет переход. Это дополнительная трата времени.
2. При помощи .htaccess
Редирект без www на страницу сайта с www.
RewriteEngine On RewriteCond %{HTTP_HOST} ^site.ru RewriteRule (.*) http://www.site.ru/$1 [R=301,L
Для обратного редиректа с www на без www (www.site.ru -> site.ru) необходимо прописать следующий код:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.site.ru RewriteRule (.*) http://site.ru/$1 [R=301,L]
В случае необходимости переадресации пользователя на другой домен, запись будет выглядеть следующим образом:
Redirect Permanent / http://site.ru
Редирект при смене домена сайта (URL)
RewriteCond %{HTTP_HOST} ^domen\.ru RewriteRule ^(.*)$ http://newdomen/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^www\.domen\.ru RewriteRule ^(.*)$ http://newdomen/$1 [R=301,L]
3. При помощи
Первым параметром является секунды, а вторым URL. В данном случае проставлена 1 секунда. Значит переход осуществится на одну секунду. Если секунды не указаны, то это означает 0 (мгновенный переход).
<html> <head> <meta http-equiv="refresh" content="1;http://site.ru/"> <head> <body> ... </body> </html>
4. При помощи php
PHP обладает специальной вспомогательной функцией — header. Она отвечает за переадресацию.
header('Location: http://site.ru/', true, 301);// переадресация //с помощью 301 редиректа на site.ru; header('Location: http://site2.ru/');// переадресация с помощью 301 //редиректа на site2.ru; header('Refresh: 5; url=http://site.ru/');// переадресовать с //задержкой на 5 секунд