
Собственно о «редиректах» и пойдет дальнейший разговор. Как перенаправить пользователя с одного сайта (странички) на другую? Способов редиректа достаточно много, в Сети достаточно разрозненных описаний этих способов. Ниже будут приведены самые распространенные и действенные из них.
1. Самым простым редиректом является прямая ссылка на необходимый сайт. Выглядит это примерно так:
<html> <title>kbaott.net</title> <head> </head> <body> <center><strong><big> Наш сайт перехал на новый адрес <a rel="nofollow" href="http://kbaott.ru">http://kbaott.ru</a> </big></strong></center> </body> </html>
Файл index.html с таким содержимым будет содержать всего одну строку со ссылкой на новый адрес. Просто и… неудобно.
2. Автоматический редирект на PHP — одно из самых частовстречающихся заданий для веб-разработкчика. Для этого создаем текстовый файл, называем его например index.php и вписываем в него следующий код:
<?
$URL="http://kbaott.ru";
header ("Location: $URL");
?>
<html>
<title>kbaott.net</title>
<head></head>
<body>
</body>
</html>
Теперь если вызвать этот файл со скриптом, делается это примерно так: http://www.******.***/index.php, скрипт выполнится на сервере и вы будете автоматически перенаправлены на указанный в $URL сайт автоматически.Здесь стоит упомянуть, что имя файлу со скриптом можно дать любое, но при этом возникает другая проблема — как показать пользователю этот файл? Есть несколько способов, но самым лучшим, как мне кажется, будет следующий: заходим на сервер в корневую папку сайта, удаляем из нее файлы типа index.php, index.htm. index.html — это файлы с которых начинается загрузка сайта, теперь наш файл со скриптом редиректа называем index.php и загружаем его на сервер в корневую папку сайта. Теперь этот файл будет автоматически запускать скрипт при входе на сайт. Но этот способ не всегда возможен — другие варианты должны рассматриваться предметно.
3. Следующий более продвинутый способ редиректа — с помощью java-скрипта с таймером. Для этого создаем текстовый файл, называем его например countdownRedirect.js и вписываем в него следующий код:
function countdownRedirect(url, msg)
{
var TARG_ID = "COUNTDOWN_REDIRECT";
var DEF_MSG = "Redirecting...";
if( ! msg )
{
msg = DEF_MSG;
}
if( ! url )
{
throw new Error('You didn\'t include the "url" parameter');
}
var e = document.getElementById(TARG_ID);
if( ! e )
{
throw new Error('"COUNTDOWN_REDIRECT" element id not found');
}
var cTicks = parseInt(e.innerHTML);
var timer = setInterval(function()
{
if( cTicks )
{
e.innerHTML = --cTicks;
}
else
{
clearInterval(timer);
document.body.innerHTML = msg;
location = url;
}
}, 1000);
}
Это будет наш java-скрипт с редиректом. Цифра 1000 в самом конце скрипта определяет время таймера — в данном случае это 10 секунд. Теперь поработаем над основным телом страницы:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Новый адрес моего блога теперь kbaott.net</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css">
a, a:active, a:visited {
color : #FFFFFF;
}
a:hover {
color : #dc0000;
}
BODY, TD, TEXTAREA, INPUT, SELECT {
color: #FFFFFF;
background: #000000;
font: bold 13pt Tahoma, sans-serif;
text-align: center;
}
span.counter {
color: red;
cursor: default;
font-size: larger;
}
div.info {
margin: 0 auto;
text-align: left;
font-size: smaller;
width: 80%;
margin-top: 2em;
}
</style>
<script src="countdownRedirect.js" type="text/javascript"></script>
</head>
<body onload='countdownRedirect("http://kbaott.ru", "Спасибо за визит!")'>
<div>Это мой старый блог.</div>
<div class="info">Мой блог переехал на новый домен и на платном хостинге, посетите его - <a rel="nofollow" href="http://kbaott.ru">kbaott.net</a><br /><br /><center>Вы автоматически перейдете на него через <span class="counter" id="COUNTDOWN_REDIRECT">10</span> секунд.</center>
</div>
</body>
</html>
Таким образом мы сообщим пользователю о том, что сайт переехал и аккуратно перенаправим его на новый адрес. Кстати говоря, скрипт (если вы не разбираетесь в java) лучше не трогать, а вот содержание html-страницы можно оформить по своему вкусу.
4. Теперь стоит сказать, что поисковые системы не любят редиректов, потому что не могут (по их мнению) качественно проиндексировать сайт. В целом это так и есть и все вышеперечисленные способы редиректа предназначены для человека, но они неудобны для поисковиков. Далее мы увидим несколько редиректов с помощью .htaccess.
.htaccess (hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла. В общем выше дана ссылка на Википедию — там почитаете :) .
Итак мы будем использовать великий 301-редирект, с его помощью можно склеивать домены для повышения PR и перенаправление посетителей при переносе сайта на новый домен. Начнем со склейки доменов.
К примеру есть сайт www.kbaott.net Поисковики его знают, но домен kbaott.net без префикса www они считают другим доменом. В этой ситуации ссылки на данный ресурс с каталогов, других сайтов и т.д. имеют вид www.kbaott.net, а некоторые ресурсы ставят ссылку kbaott.net без www. Таким образом часть PR уходит на сайт без префикса, что не есть хорошо. С помощью 301 редиректа можно склеить домены, перенаправляя посетителей и роботов с простого сайта на сайт с www или на оборот. Теперь поисковики видят что это один и тот же домен и весь пиар будет ваш.
Для этого в файле .htaccess в корне сайта пропишите следующие строчки:
RewriteEngine On
RewriteCond %{HTTP_HOST}www.kbaott.net
RewriteRule (.*) http://kbaott.ru/$1 [R=301,L]
Здесь идет перенаправление с сайта с префиксом на сайт без www. Вместо приведенных адресов вставьте свои. Так же можете сделать .htaccess редирект наоборот, поменяв адреса сайтов в файле местами.
5. Вот мы и дошли до перенаправления пользователя на другой домен. Для того, что бы перенаправить посетителя на другой домен используем 301 редирект в .htaccess следующим образом:
В корень домена, который будем клеить к основному помещаем .htaccess с таким синтаксисом:
Redirect Permanent / http://kbaott.ru
Да, всего одна строка — перенаправляет пользователя (или робота) на указанный адрес совершенно незаметно и мгновенно.
Итак мы с Вами разобрались в способах и механизмах редиректа. Желаю удачи. Вопросы можете задавать в комментариях.