Подписывайтесь:


Технотрон » Web-разработки » Все о редиректах

Собственно о "редиректах" и пойдет дальнейший разговор. Для начала определимся, что говорить мы будем о редиректах полезных - недавно я рассказал Вам как победить редирект с "ВКонтакте" на вредоносный сайт - это вредный редирект и с ними нужно бороться, а сейчас поговорим о том, как перенаправить пользователя с одного сайта (странички) на другую.


Способов редиректа достаточно много, в Сети достаточно разрозненных описаний этих способов. Ниже будут приведены большинство из них.

1. Самым простым редиректом является прямая ссылка на необходимый сайт. Выглядит это примерно так:

 

<html>
<title>kbaott.net</title>
<head>
</head>
<body>
<center><strong><big>
Наш сайт перехал на новый адрес <a rel="nofollow" href="http://kbaott.net">http://kbaott.net</a>
</big></strong></center>
</body>
</html>

Файл index.html с таким содержимым будет содержать всего одну строку со ссылкой на новый адрес. Просто и... неудобно.

2. Автоматический редирект на PHP - одно из самых частовстречающихся заданий для веб-разработкчика. Для этого создаем текстовый файл, называем его например index.php и вписываем в него следующий код:

<?
$URL="http://kbaott.net";
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.net", "Спасибо за визит!")'>
<div>Это мой старый блог.</div>
<div class="info">Мой блог переехал на новый домен и на платном хостинге, посетите его - <a rel="nofollow" href="http://kbaott.net">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.net/$1 [R=301,L]

Здесь идет перенаправление с сайта с префиксом на сайт без www. Вместо приведенных адресов вставьте свои. Так же можете сделать .htaccess редирект наоборот, поменяв адреса сайтов в файле местами.

5. Вот мы и дошли до перенаправления пользователя на другой домен. Для того, что бы перенаправить посетителя на другой домен используем 301 редирект в .htaccess следующим образом:

В корень домена, который будем клеить к основному помещаем .htaccess с таким синтаксисом:

Redirect Permanent / http://kbaott.net

Да, всего одна строка - перенаправляет пользователя (или робота) на указанный адрес совершенно незаметно и мгновенно.

Итак мы с Вами разобрались в способах и механизмах редиректа. Желаю удачи. Вопросы можете задавать в комментариях.

Статья подготовлена на основе материалов:

http://www.mediasapiens.tv, http://www.instructing.ru, http://sb-money.ru.

 

Если .htaccess редиректы Вас заинтересовали, то более подробно о них можно почитать

тут.

 


редиректы перенаправление .htaccess
Версия для печати
Обсудить статью на форуме


 автор: Technotron    02.05.2010    Комментариев: 0

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.
smartbooks.org
Опрос
Оргтехнику какого производителя предпочитате?
Samsung
Xerox
Canon
Hewlett Packard
Epson
Lexmark
Konica
Oki
Dell
Ricoh
Brother
Kyocera
Sharp
Status online
Сейчас на сайте: 35
Гостей: 32
Пользователи: 
- отсутствуют

Роботы: