301 Redirect (редирект 301) как делается

Permanent Redirect 301 или - технический момент в построении правильной ссылочной структуры сайта. Множество ошибок и неприятностей возникает, когда Redirect 301 настроен неправильно. Из-за этого поисковыми системами сайт может восприниматься не самым лучшим образом и в поиске сайт точно не будет находится в ТОП10-20.

Поэтому давайте настраивать свой сайт изначально правильно и не упускать столь важные технические моменты в будущем продвижении сайта...

Permanent Redirect 301301 редирект - это код 301, который отдает сервер в ответ на запрашиваемую страницу. Данный redirect (перенаправление страницы) можно прописать в файле .htaccess, который находится в корне вашего сайта и означает, что страница(цы) перемещена навсегда(moved permanently). Не путайте с 302ым редиректом, в котором перенаправление подразумевается временное.

Когда делается 301-ое (постоянное) перенаправление

1. Нужно сразу отметить, что желательно его делать и проектировать на этапе создания сайта, чтобы страницы сайта уже сразу попадали в индекс поисковиков с нужными url-ами.

2. Если адрес(урл) страницы или группы страниц предполагается изменить. То есть адреса страничек вашему сайта вам почему то не нравятся и вы решили все поменять, чтобы они были удобочитаемы, сделать чпу и к вашему сайту поисковики относились как можно более лояльно.

3. Также наиболее распространенный способ использования 301-ого редиректа - при смене домена, постоянной переадресации с другого сайта или при склейке зеркал сайта (например с www на без www или наоборот). В настоящее время Яндекс научился определять и выделять одно зеркало сайта, но можно и не дожидаясь его самовольных действий, порекомендовать ему - как делать правильно.

4. Дубли страниц - зло, которое мешает продвижению сайта. Триста первый тут самый явный товарищ и умелые сеошники знают об этом.

Redirect 301 через .htaccess (примеры)

301 перенаправлениеПостоянное перенаправление часто делается через файл .htaccess, поэтому данный метод и будем рассматривать ниже на примерах. У вас он может быть в виде htaccess.txt в этом случае он работать не будет и его надо переименовать в вариант выше - .htaccess(вы все правильно видите впереди точка).

Для большинства стандартных перенаправлений вначале данного файла указываем это:

RewriteEngine On

это необходимо для включения модуля mod rewrite на сервере Apache.

Но лучше написать так:

RewriteEngine On
RewriteBase /

, где RewriteBase / - показывает, что отсчет переадресаций должен вестись от корня сайта, а не от реального адреса сервера(он намного длиннее).

Далее пишем уже сами редиректы

Примеры

  1. Уточним в каком виде мы хотим видеть наш домен с www или без  www:

а) перенаправляем навсегда имя вашего домена с без www НА www:

RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

или так:

RewriteCond %{HTTP_HOST} ^domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]

б) перенаправляем навсегда имя вашего домена с www на БЕЗ www:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

или так:

RewriteCond %{HTTP_HOST} ^www\.domain\.ru$ [NC]
RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]

где:

  • RewriteCond - условие, и если обнаруживается равенство ему, то выполняется RewriteRule.
  • остальные символы это часть регулярных выражений(()-символ группировки для более удобного использования далее с помощью простого символа % и прибавлением к нему цифры начиная с единицы; ! - символ отрицания; ^ - указывает на то, что здесь начало строки, а $ - конец строки; \ - обратный слэш это экранирование, точка обозначает любой только один символ). Это были метасимволы регулярных выражений, о модификаторах и флагах читайте в статье о регулярных выражениях.

 Сразу давайте разберем для примера, если у вашего сайта  появились дубли, допустим, главной страницы вида http://site.ru/page-name.html&post=-1234 то делаем так:

RewriteCond %{REQUEST_URI} ^(.*)\&post=
RewriteRule ^(.*)\&post=(.*)$ $1 [R=301,L]

Следующий пример ссылка такого вида: http://site.ru?utm_source=twitter, 301 редирект будет такой(то есть подобные ссылки будет редиректиться также):

RewriteCond %{QUERY_STRING} ^utm_source=
RewriteRule (.*) $1? [R=301,L]

%{QUERY_STRING} - показывает то, что есть в ссылке после знака вопроса.

Простой 301 redirect

301

Для простого редиректа одной страницы на другую воспользуемся конструкцией:

Redirect 301 /page1.html http://site.ru/page2.html

Последовательность: Необходимо соблюдать последовательность перенаправлений, для этого следующий пример:

RewriteRule ^dir/about.html /about.html [L,R=301]
RewriteRule ^dir(.*)$ /inf.php [L,R=301]

То есть, в этом примере первая строчка - это простое перенаправление странички из директории dir на страничку about.html. Вторая - показывает, что всю папку dir надо надо переадресовывать на страничку inf.php. Если бы мы поставили эти строчки наоборот то первый редирект бы не сработал, потому что страничка dir/about.html также находится в той же папке dir. То есть все выполняется последовательно сверху вниз.

Редирект 301 с одного сайта на другой

1 способ:

Redirect 301 / http://www.website.com/

 

2 способ:

RewriteCond %{HTTP_HOST} old-site.ru
RewriteRule (.*) http://new-site.ru/$1 [R=301,L]

 

Я не могу, кто поможет?

Если не можете самостоятельно или не уверены, есть специализированные сервисы:

Как проверить 301 redirect 

Во-первых, визуально, во-вторых - в Яндекс Вебмастер есть Проверка ответа сервера

Ну, а если ничего не помогло, то вот еще есть пару:

 

 

Также по теме: обеспечиваем безопасность папки с помощью 301 редиректа

Полезно будет узнать также:

Добавить комментарий


Защитный код
Обновить

Вы здесь: Сайтостроение Продвижение сайта Технические моменты 301 Redirect (редирект 301) как делается