Редирект

Редирект — автоматическое перенаправление пользователей с одного сайта на другой. Выглядит это следующим образом — пользователь набирает в адресной строке браузера один адрес, а оказывается на сайте, адрес которого совсем другой. Кроме собственно процесса, редиректом называется скрипт, выполняя который, браузер перенаправляет пользователя на другой сайт.

Пример использования редиректа:

  • Владелец сайта покупает более красивое доменное имя.
  • редиректа происходит автоматический переход пользователей на новый сайт даже в том случае, если они обращаются по прежнему адресу.
  • склейка доменных имён.
  • При перемещении страниц или разделов сайта. Редирект применяется для переадресации пользователей на новый, правильный адрес страницы или раздела.
  • Для периодического обновления страницы. Обновление страницы, своего рода частный случай редиректа страницы на саму себя, но с задержкой по времени! Полезная возможность на сайтах с текстовыми онлайн-трансляциями, чатах.

Способы использования редиректа:

Редирект можно сделать несколькими способами, а именно используя определенные инструменты.

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. При помощи Meta-тега

Первым параметром является секунды, а вторым 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 секунд