На какие вопросы отвечает данная статья:


Как перекинуть посетителей на другой сайт?
Как перекинуть посетителей на другую страницу?
Как перенаправить посетителей?

Иногда возникает необходимость перекинуть посетителя на другой сайт или страницу.
Случаи бывают совершенно разные - перенос сайта на другой домен, регистрация второго, третьего домена и т.п.
Как же перекинуть посетителя туда, куда нам нужно?

Есть множество способов.
В данной статье я остановлюсь только на самых распространненных и основных.

Перенаправление с помощью файла .htaccess

Файл .htaccess служит для гибкой настройки Apachе-сервера - для переопределения директив сервера внутри папки и всех вложенных в которой он находится.
Для перенаправления можно использовать две директивы - Redirect и RedirectMatch.

Директива Redirect. Выполняет редирект посетителя, запрашивающего документ на другую страницу (URL).

Синтаксис: Redirect [status] URL-path URL

status : необязательное поле, определяет код возврата
Допустимые значения:
permanent (301 — документ перемещен постоянно);
temp (302 — документ перемещен временно);
seeother (303 — смотрите другой);
gone (410 — убран).


URL-path: локальная часть URL запрашиваемого документа.

URL: URL куда должен быть выполнен редирект

Для наглядности сразу приведу примеры.

Перенаправление на другой сайт:
Redirect / http://grozmaster.nsk-info.ru


Перенаправление с одного каталога на другой:
Redirect /novosti http://grozmaster.nsk-info.ru/news


Директива RedirectMatch. Директива аналогична Redirect, за исключением того, что вместо адреса запрашиваемого документа пишется регулярное выражение (шаблон).

Синтаксис: Redirect [status] regexp URL

status: необязательное поле, определяет код возврата.
Допустимые значения:
permanent (301 — документ перемещен постоянно);
temp (302 — документ перемещен временно);
seeother (303 — смотрите другой);
gone (410 — убран).


regexp: регулярное выражение (шаблон), описывающее группу URL-ов

URL: URL куда должен быть выполнен редирект

Следующий пример перенаправляет любую страницу (включая несуществующие) на новый сайт:
RedirectMatch (.*) http://rumata.dragons.ru/


Следующий пример позволяет броузеру загружать веб страницу с текущего сервера, но использовать другой сервер для загрузки изображений:
RedirectMatch (.*)\.png$ http://rumata.dragons.ru/images/$1.png
RedirectMatch (.*)\.jpg$ http://rumata.dragons.ru/images/$1.jpg
RedirectMatch (.*)\.jpeg$ http://rumata.dragons.ru/images/$1.jpeg
RedirectMatch (.*)\.gif$ http://rumata.dragons.ru/images/$1.gif


Или вот такой :) :
RedirectMatch (.*)\cmd.exe$ http://www.microsoft.com$1


Перенаправление с помощью PHP

В php перенаправление на другой сайт можно сделать вполне даже легко. Достаточно на том сайте, с которого хотим сделать перенаправление (пусть будет http://mysite.ru/) создать файл с расширением php (например, index.php) и содержимым:
<?php
header("Location: http://grozmaster.nsk-info.ru/");
?>


Таким образом, при попытке зайти на сайт http://mysite.ru/ броузер посетителя будет автоматически переходить на мой блог :)

На некоторых сайтах иногда приходится выполнять какие либо действия в зависимости от того, что хочет посетитель, или что он сделал. Например, при проверке введенного логина при авторизации мы можем отобразить страницу из его кабинета (в случае правильно введенного логина и пароля) или перенаправить его на страницу ошибки:
<?php
if ($login !=$_POST['login'] || $pass !=$_POST['pass']) {
header("Location: /error_login.php");
}else{
Отображаем всю личную информацию посетителя...
}
?>


ВНИМАНИЕ! header() необходимо вставлять в коде исключительно до вывода какой либо информации на экран (до команд echo, print и т.д.)

Перенаправление с помощью Java Script

C помощию Java Script тоже можно организовать перенаправление. И в этом так же нет ничего сложного.

Пример:
<SCRIPT LANGUAGE="javascript">
<!--
window.location = 'http://grozmaster.nsk-info.ru/';
//-->
</script>


Данный код неоходимо поместить в заголовок html документа (между тегами head).

Перенаправление в html страницах.

В html страницах так же существуем свой способ послать посетителя на... другую страницу. Это делается с помощью meta-тега:
<META NAME="Refresh" CONTENT="0" URL="http://grozmaster.nsk-info.ru/">


Здесь параметром CONTENT можно задавать время, через которое будет совершено перенаправление (в секундах).
Данный тег так же помещается в заголовок страницы (между тегами head).

Кстати, на страницах очень часто используют связку последних двух способов:
<SCRIPT LANGUAGE="javascript">
<!--
window.location = 'http://grozmaster.nsk-info.ru/';
//-->
</script>
<noscript>
<META NAME="Refresh" CONTENT="0" URL="http://grozmaster.nsk-info.ru/">
</noscript>


Таким образом, по умолчанию, перенаправление будет производить Java Script. Но если работа последних запрещена в брoузере, то это произойдет по указанию meta-тега Refresh.

Если статья была Вам полезна, поддержите проект.
Отправьте 5 рублей на развитие. Спасибо!

Yandex-money | WMR | WMZ