
Всем привет! Ситуация когда люди делают посещаемые и интересные проекты на бесплатных доменах 3 или 4 уровня совсем не редкость, но когда дело доходит до монетизации скажем в тех же ссылочных биржах, администраторы ресурсов сталкиваются с ограничениями и часто предпринимают решение о переходе на домен 2 уровня. redirect 301 как раз призван помочь в этом случае. В этой статье я постараюсь объяснить зачем нужен 301 редирект и как его сделать.
Для начала поговорим о предназначение 301 редиректа. Он предназначен для :
- Склейки доменов с www и без www. Как вы знаете анахронизм с WWW актуален и по сей день и параметры домена с «ВВВ» могут отличаться от параметров домена без него.
- При смене домена, когда необходимо сохранить его основные показатели — ссылочную массу, ТИЦ, PR. Грубо говоря при организации 301 редиректа будет осуществлена склейка и все показатели старого домена плавно перетекут на новый.
- При смене ЧПУ. Это необходимо когда поисковые системы еще не выплюнули старые адреса из выдачи и необходимо перенаправить пользователей на туже страницу, но по новому адресу.
Именно 301 редирект позволит получить PR от 1 до 5 пунктов для любого домена бесплатно. Подробнее об этом написано в данной статье, которая до сих пор не потеряла актуальности.
Теперь вы знаете зачем нужен 301 redirect и стоит поговорить о технической части, а именно о том, как его реализовать на практике. Все они напрямую зависят от вашего хостера или конфигурации сервера, так что перед началом шаманства рекомендую ознакомиться с тем на чем работает ваш сайт.
Способ 1.Простой редирект (файл .htaccess или httpd.conf для Apache):
Redirect 301 / http://www.newsite.com/index.html
Это самый простой вид. ВСЕ страницы старого сайта будут перенаправлены на новый. Если вас интересует лишь перенаправление конкретных страниц, то стоит воспользоваться конструкцией вида:
Redirect 301 /OLDADRESS.RU/pageokd.htm http://www.NEWADRESS.RU/pagenew.htm
Грубо говоря вам придется долго и упорно перечислять все страницы для перенаправления. Более продвинутый способ включает в себя директиву RedirectPermanent:
RedirectPermanent / http://www.sitenew.ru/ или для конкретного каталога сайта
RedirectPermanent /old-catalog-site http://www.site2.com/new-catalog-site/
C помощью RedirectPermanent можно задавать порядок следования перенаправлений. Пример:
Redirect permanent /category-1 http://category-1.newdomen.ru/
Redirect permanent / http://www.newdomen.ru/
Т.е. попадая в категорию category-1 пользователь или робот поисковой машины будет перенаправлен на http://category-1.newdomen.ru. А все остальное уйдет по адресу http://www.newdomen.ru
Способ 2. mod_rewrite в .htaccess
С помощью директивы RewriteRule можно получить большое количество настроек для организации 301 редиректа.
Вариант номер 1. Перенаправление домена с www на домен без www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Или
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Обозначение [R=301,L] означает: перенаправить клиента( или поискового робота) и отправить ему код статуса 301 (R=301) и сделать это правило последним (L).
Вариант номер 2. Перенаправление запросов с домена без www на домен с www.
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Или
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
Способ 3. Редирект 301 на PHP
<?php
header(«HTTP/1.1 301 Moved Permanently»);
header(«Location: http://www.newdomain.ru/newdir/newpage.htm»);
exit();
?>
Или расширенный вариант
<?
$ref=$_SERVER[‘QUERY_STRING’];
if ($ref!=») $ref=’?’.$ref;
header(‘HTTP/1.1 301 Moved Permanently’);
header(‘Location: http://newdomain.com/’.$ref);
exit();
?>
Способ 4. Редирект 301 на ASP
<%@ %>
<%
Response.Status=“301 Moved Permanently”
Response.AddHeader “Location”, “http://www.new-url.com”
response.end
%>
Способ 5. Редирект 301 на ASP.NET
<script runat=“server”>
private void Page_Load(object sender, System.EventArgs e)
{
Response.Status = “301 Moved Permanently”;
Response.AddHeader(“Location”,“http://www.new-url.com”);
}
</script>
Способ 6. Редирект 301 на ColdFusion
<.cfheader statuscode=“301” statustext=“Moved permanently”>
<.cfheader name=“Location” value=“http://www.new-url.com”>
Способ 7. Редирект 301 на JSP (Java)
<%
response.setStatus(301);
response.setHeader( “Location”, “http://www.new-url.com/” );
response.setHeader( “Connection”, “close” );
%>
Способ 8. Редирект 301 на CGI PERL
$q = new CGI;
print $q->redirect(“http://www.new-url.com/”);
Способ 9. Редирект 301 на Ruby on Rails
def old_action
headers[“Status”] = “301 Moved Permanently”
redirect_to “http://www.new-url.com/”
end
Вот в принципе и все хитрости по работе с 301-м редиректом. Будут вопросы — задавайте в комментариях и коллективный разум вам поможет. Всем хорошего дня!