Виды редиректов и зачем они нужны

2 марта 2012 | Автор: zkzakhar | Теги: , ,

Пора понемногу прекращать оффтопить в блоге. Вчера решил почистить рубрики и метки от лишнего шлака, только вот при старте блога я допустил одну ошибку. При указании какими должны быть мои урлы в блоге я выбрал схему блог.ком/категория/имя-поста.html и теперь при изменении категории ссылка на пост соответственно тоже меняется. Неудачно, но не смертельно. Короче говоря поправил я свои ссылки, теперь они имеют вид блог.ком/имя-поста.html (в этом можно убедиться взглянув в адресную строку  http://zkzakhar.com/vidy-redirektov-i-zachem-oni-nuzhny.html).

А что теперь? Что скажет Яндекс, что скажет Гугл, когда узнают что теперь вся ихняя база забита битыми ссылками? Что делать с теми обратными ссылками, которые ведут на определённые страницы моего блога? Они ведь тоже перестали работать. Так вот, для решения этой проблемы и существуют редиректы. О том как сделать редирект я в этом посте и расскажу.

Может сталкивались, когда при вводе в адресную строку одного урла вылазит сайт совершенно не тот что надо и с не тем адресом, который вводили? Да, это и есть редирект. Пример этого можно увидеть, если ввести в адресную строку вставить ссылку _http://zkzakhar.com/uvlecheniya/tri-machty.html , в результате адрес отобразится таким _http://zkzakhar.com/tri-machty.html. Фокус? 🙂 Теперь о том как это делается.

Итак их бывает 2 вида: 301 редирект и 302 редирект.

301 редирект

301 редирект сообщает поисковым роботам, что страница получает новый адрес навсегда. Процесс изменения адреса протекает довольно долго, иногда бывает что до года. По завершению процедуры изменения урлов тИЦ Яндекса и PR Google перетекут на новый адрес. Теперь о том как его делать и в каких случаях. Коды всех редиректов прописываются в файле .htaccess, который находится в корне вашего сайта на хостинге. Кстати, могу посоветовать лучших хостинг для размещения ваших сайтов — не пожалеете, качество и надежность гарантированы многолетним опытом работы. А теперь к делу.

1. Редирект 301 с www на без-www

Зачем это нужно: для поисковых систем сайты www.zkzakhar.com и zkzakhar.com — это два совершенно разных ресурса. Из этого вытекает, любая статья помещенная на такой сайт, будет в глазах поисковых роботов дублироваться на двух разных сайтах. Как известно роботы дублей не любят, поэтому велик шанс бана обеих ресурсов со стороны поисковика. Правда в панеле вебмастера у Яндекса недавно появилась возможность выбрать главное зеркало сайта (с www или без www), но я думаю перестраховаться надо в любом случае.

Открываем .htaccess и прописываем

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.yoursite.com$ [NC]
RewriteRule ^(.*)$ http://yoursite.com/$1 [R=301,L]

Вместо yoursite.com в обеих строках прописываем свой домен, остальное без изменений.

2. Редирект 301 с без-www на www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^yoursite\.com$ [NC]
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=301,L]

yoursite.com заменяем на свой домен, как и в предыдущем случае.

Для Яндекса, в независимости от того какой 301 редирект вы выбрали (с www или без-www), следует в файле robots.txt прописать главное зеркало, с помощью директивы ‘Host’. Этот файл так же как и .htaccess находится в корне сайта. Например, если адрес моего блога zkzakhar.com (без-www), то строка в robots.txt должна выглядеть так:

Host:  zkzakhar.com

Примером для вас может стать мой собственных robots.txt, который доступен по адресу zkzakhar.com/robots.txt Здесь видно, что перед строкой User-agent: * прописано то самое главное зеркало. Подробнее о файле robots.txt и его настройке — в одном из следующих постов.

3. Редирект 301 для изменения адреса страницы

Тут я постараюсь особо ничего не расписывать. Если вам нужно, что бы страница, исходя из моего примера, _http://zkzakhar.com/uvlecheniya/tri-machty.html стала доступна по адресу _http://zkzakhar.com/tri-machty.html следует прописать в файле .htaccess следующую строку:

Redirect 301 /uvlecheniya/tri-machty.html http://zkzakhar.com/tri-machty.html

Именно это я и сделал для всех своих немногих 23 записей, которые существуют на данный момент.

Если надо создать редирект домена старого на домен новый, то можно воспользоваться этим кодом:

RewriteEngine On
RewriteCond %{HTTP_HOST} olddomen.net
RewriteRule (.*) http://newdomen.ru/$1 [R=301,L]

302 редирект

302 редирект используется если требуется изменить адрес страницы на какое-то время, то есть временный редирект. В этом случае дается сигнал поисковой системе о том, что старый урл удалять из базы не нужно и поисковик оба этих адреса держит у себя. При выдаче отображается какой-то один из двух адресов, но при клике пользователь будет попадать на тот, на который 302 редирект направляет. Стоит отметить, что PR при временном перенаправлении не перетекает на страницу, на которую вы перенаправляете своих пользователей.

Синтаксис 302 редиректа такой же как и 301, только во всех местах 301 заменяется на 302.

Захар

[vk-share-button]