Redirect 301 применяется в нескольких ситуациях. Чаще всего он применяется тогда, когда вам необходимо сменить доменное имя у сайта, который уже давно находится в индексе поисковых систем и имеет хорошие позиции. Чтобы не потерять эти хорошие позиции и используется 301 редирект. Еще один случай его использования - это склеить имя сайта с префиксом www и без него. При применении редирект 301 у сайта сохранятся такие параметры, как тематический индекс цитирования Яндекса (ТИЦ) и Page Rank (PR) от Гугла.

Как сделать 301 редирект

Существует достаточно большое количество способов грамотно осуществить редирект 301. Вообще же, 301 код следует понимать как постоянное перемещение страницы. Наиболее простым способом следует считать редактирование файла .htaccess, при условии, конечно, что на рабочем сервере используется apache.

Также должны быть активированы модули mod_alias, а также mod_rewrite. Необходимо открыть файл .htaccess текстовым редактором и добавить строку:

Redirect 301 /page.html http://yoursite.ru/new-page.html

или же

Redirect permanent /page.html http://yoursite.ru/new-page.html

Вместо yoursite.ru подставляем свои URL. После этого, заходя на страницу, размещенную по адресу yoursite.ru/page.html, будете попадать на страницу, размещенную по адресу http://yoursite.ru/new-page.html. Думаю, вы принцип поняли.

В таком случае пользователь, перешедший по старому адресу, будет автоматически перенаправлен по адресу нового сайта. Можно перенаправлять как с отдельных старых страниц на новые, так и со всего сайта целиком. Если вы планируете поменять движок сайта с php на ASP, а такие случаи частенько бывают, то вам подойдет такой вариант 301 редиректа:

RedirectMatch /(.*)\.php$ /$1.aspx

Этот ситуация практически повторяет предыдущую.

Еще чаще вебмастера сталкиваются с ситуацией, когда просто необходимо перенаправлять пользователей с сайт с префиксом www, на тот же сайт, но без соответствующего префикса. Данная тривиальная задача решается также внесением исправлений в файл   .htaccess, который находится в корне сайта. Просто добавьте в него пару строчек кода, приведенного ниже:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite.ru\.ru

RewriteRule ^(.*)$ http://www.yoursite.ru/$1 [R=permanent,L]

В этом случае, даже если пользователь в адресной строке введет название сайт с префиксом www, то он будет переправлен 301 редиректом на сайт без него.

Если у вас ситуация в которой необходимо все .html страницы сделать страницами .htm, то добавьте такой код:

RewriteEngine on
RewriteBase /
RewriteRule ^(.*)\.html$ $1.htm [R=permanent]

Более сложным вариантом 301 редиректа является изменение php кода страницы. В этом случае вам необходимо добавить определенный скрипт в код страницы. Для сайта, написанного на php введите такой код:

<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.yoursite.ru/newdir/newpage.htm”);
exit();
?>

С Уважением, naskolumbia.