Редирект. Примеры переадресации сайтов
Ключевые слова: редирект, переадресация, redirect
Полезная статья? — можете поделиться ссылкой или оставить комментарий
* Ссылка для сайта или блога
* Ссылка для форума
Ссылка на статью для размещения на сайте или блоге:
<a href="http://soft.ipbb.ru">Редирект. Примеры переадресации сайтов</a>
Выделите текст и нажмите на Ctrl+C, чтобы скопировать выделенный текст
Ссылка на статью для размещения на форуме:
Редирект. Примеры переадресации сайтов
Выделите текст и нажмите на Ctrl+C, чтобы скопировать выделенный текст
При разработке разнообразных по сложности сайтов рано или поздно требуется применение редиректов. Например, для обновления страницы чата или онлайн-трансляции, для перенаправления на правильный адрес в случае «переезда» страницы и т. п. Правильное использование редиректов или обновления страниц может сделать работу сайта более эффективной и удобной для пользователей. Попробуем перечислить основные приёмы реализации редиректа на сайте.
Содержание статьи:
* Когда полезно применять редирект
* Примеры исполнения
* Комментарии
Редирект (от англ. redirect) — переориентация, перенаправление пользователя на другую страницу сайта. Обычно под редиректом подразумевается автоматическая переадресация, без участия пользователя. Редиректом могут называть программное решение (скрипт), которое принудительно перенаправляет пользователя с посещаемой страницы на другую.
Редирект может применяться не только во благо пользователей, но и без их ведома, например, в случаях использования редиректов на сайтах «дорвеях» или для автоматической «накрутки» счетчика посещений сайта.
Когда полезно применять редирект (↑)
* При переносе сайта на новый домен. Посетителей сайта по старому адресу, желательно, автоматически перенаправлять на другой домен;
* При перемещении страниц или разделов сайта. Редирект применяется для переадресации пользователей на новый, правильный адрес страницы или раздела. Очень важно для сохранения целостности сайта и доступности информации;
* Для периодического обновления страницы. Обновление страницы, своего рода частный случай редиректа страницы на саму себя, но с задержкой по времени! Полезная возможность на сайтах с текстовыми онлай-трансляциями, чатах.
* При продвижении сайта. Редирект может применяться, например, для ускорения «склейки» адресов страниц сайта с префиксом www и без него;
На заметку! Аккуратное и правильное использование 301-го редиректа старых страниц на новые или старого сайта на новый адрес, позволяет сохранить позиции сайта в поисковых системах. Использование 301-го редиректа передаёт PageRank страницы на новый адрес.
Примеры исполнения (↑)
В зависимости от поставленной задачи и возможностей разработчика для выполнения редиректа может применяться:
* «JavaScript» (выполняется на стороне клиента, браузера);
* мета-тег «Refresh» (выполняется на стороне клиента);
* скрипт, например, на языке «PHP» (выполняется на стороне сервера);
* директивы mod_rewrite в файле .htaccess (выполняется на стороне сервера).
Как видно из способов реализации, команда на редирект может поступать со стороны браузера (в случае использования яваскриптов или мета-тегов) или от сервера (в случае отправки браузеру специального ответа, содержащего заголовок «Location»). Остановимся подробнее на каждом из способов.
Редирект с помощью «JavaScript»
«Приказать» браузеру сделать переход на другую страницу можно средствами языка программирования javascript.
Команды javascript для выполнения редиректа (redirect):
1. location="http://soft.ipbb.ru";
2. document.location.href="http://soft.ipbb.ru";
3. window.location.reload("http://soft.ipbb.ru");
4. document.location.replace("http://soft.ipbb.ru");
5. setTimeout('document.forms["searchform"].Submit.click()', 100);
— эмуляция клика по кнопке отправки формы. Подобный приём редиректа частенько используют строители дорвеев.
На заметку! Метод reload() полностью моделирует поведение браузера при нажатии на кнопку «Reload» в панели инструментов. А метод replace() позволяет заместить текущую страницу на другую страницу. При этом посетитель не сможет вернуться на предыдущую страницу с помощью кнопки браузера «Back», так как запись в history о старой странице полностью замещается новой.
В момент выполнения одной из перечисленных выше команд javascript, сразу же произойдёт загрузка новой страницы. Но чаще необходимо делать редирект с задержкой. В javascript для исполнения кода с задержкой Вы можете использовать функцию setTimeout() или setInterval().
Mета-тег «Refresh»
Мета-тег редиректа необходимо использовать в заголовке html страницы, между тегами <head></head>. Подобный мета-тег часто используют на страницах, которые требуют постоянного периодического обновления. Например, на сайтах с онлайн-трансляциями матчей и т. п. событий.
Пример мета-тега для обновления страницы с задержкой по времени:
<meta http-equiv="refresh" content="0; url= http://soft.ipbb.ru" />,
где 0 — значение задержки в секундах, по истечении которой необходимо сделать переадресацию пользователя на новый адрес url.
Особое внимание следует уделить редиректам, поступающим со стороны сервера. Важно понимать, что редирект бывает временным (статус 302) и перманентным (статус 301, страница перемещена навсегда).
Чтобы браузер выполнил команду редиректа, сервер должен прислать в заголовке, например, следующий ответ:
HTTP/1.1 301 Moved Permanently
Location: http://soft.ipbb.ru
Подобный ответ сервера, сообщает браузеру посетителя, что запрашиваемая страница навсегда перенесена и доступна по новому адресу (разумеется, домен wwwvashmaster.ru в примере мы указали в качестве наглядности).
Как сделать редирект на PHP
Как мы уже заметили ранее, для выполнения редиректа скрипт на сервере должен отправить в браузер посетителя специальный заголовок. В языке программирования PHP отправку заголовков с редиректом можно сделать с помощью функции header().
Пример готового кода PHP:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://soft.ipbb.ru/"); /* Redirect browser */
/* Make sure that code below does not get executed when we redirect. */
exit;
?>
Делаем редирект средствами .htaccess
Директивы, прописанные в файле .htaccess обрабатываются сервером «Apache». Приведём несколько рабочих примеров переадресации:
1. Redirect 301 / http://soft.ipbb.ru/
2. RedirectPermanent / http://soft.ipbb.ru/
3. Redirect 302 / http://soft.ipbb.ru/
Более сложные решения, но очень полезные, можно использовать при подключенном модуле «Apache» — mod_rewrite. Команды для модуля mod_rewrite прописываются в файле .htaccess.
Пример содержимого файла .htaccess с использованием mod_rewrite:
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) [R=301,L]
Если этот файл .htaccess разместить на другом домене, то любые запросы будут автоматически перенаправляться 301-м редиректом на сайт soft.ipbb.ru . Адрес посещённой страницы будет сохранён. Подобный редирект можно использовать с купленных «пиаристых» доменов, например, для передачи PR своему основному сайту.
На заметку! 301-й редирект называют безопасным! Данный редирект сообщает, что страница навсегда перенесена на новый адрес. Этот факт хорошо определяется поисковыми системами и практически все поисковые параметры старой страницы передаются новой. Например, такие факторы как ссылочное, PR и т. п. При 301-м редиректе страница на новом адресе как правило не теряет свои позиции в поисковых системах, что делает подобные переносы страниц и разделов сайта незаметными для посетителей и без ущерба трафику из поисковых систем.
Приведём пример файла .htaccess с 301-м редиректом, который часто используется в случае переноса или переименования директории раздела сайта:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^articles(/?)(.+)?$ [R=301,L]
Данные директивы mod_rewrite сообщают браузеру посетителя, что старая страница, например, по адресу http://soft.ipbb.ru/viewtopic.php?id=6 навсегда перенесена и доступна на нашем сайте по новому адресу http://soft.ipbb.ru/viewtopic.php?id=12
В заключение, приведём файл .htaccess c универсальным редиректом с домена с www на домен без www:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.([^.]+\.ru)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Пожалуй, на этом остановим наш рассказ. Нам удалось в одной статье перечислить основные приёмы организации редиректов, от использования javascript до отправки необходимых заголовков прямо из скриптов на сервере. Надеемся, не зря!
Простой пример на php
редирект
<script>
function follow_page()
{
window.location.href='http://soft.ipbb.ru'
}
setTimeout('follow_page()',5000)
</script>
Кто знает другой делитесь.
Админ soft.ipbb.ru