При переносе сайта на другой домен или изменении адресов страниц сайта вам необходимо перенаправить пользователя на новый адрес. И именно здесь нам на помощь приходит 301 Permament Redirect.
Если сайт или страница сайта отдает пользователю 301-ую ошибку, это означает её доступность по новому адресу, куда пользователь и будет перенаправлен. Для поисковых систем 301 редирект будет означать перенос всех параметров сайта, включая PR, тИЦ и ссылочную массу. Как следствие, новый домен войдет в индекс ПС на те же позиции. Из данной статьи вы узнаете как сделать 301 редирект.
Случаи применения 301 редиректа:
- Перенос сайта на другой домен
- Смена CMS
- Редирект домена без WWW на домен с WWW
- Смена адреса страницы
301 редирект через htaccess
Возможность использования такого вида редиректа диктуется техническими возможностями арендуемого сервера или хостинга. Если на нем используется apache — тогда метод создания 301-ого редиректа с помощью файла .htaccess самый удобный, однако необходимо включить модули mod_alias и/или mod_rewrite в php.ini.
Редирект при помощи директивы Redirect или RedirectPermanent модуля mod_alias.
Redirect 301 /old-page.html http://new-sait.ru/new-page.html
или
Redirect permanent /old-page.html http://new-sait.ru/new-page.html
Однако такой способ подходит скорее для редиректа нескольких статей, никак не для всего сайта, так как все адреса для перенаправления нужно перечислять индивидуально.
Для тех же целей возможно использование RedirectPermanent
RedirectPermanent /old-url.html http://new-site.ru/new-url.html
Есть еще редирект RedirectMatch, который похож на предыдущий, с возможностью регулярного переноса старых URL адресов. Так, при смене CMS с PHP на ASP можно сделать редирект таким образом:
RedirectMatch /(.*)\.php$ /$1.aspx
301 редирект на PHP
Редирект осуществляемый при помощи скрипта, отправляющий посетителю необходимые заголовки. Вот так выглядит код PHP редиректа:
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://www.newdomain.ru/newdir/newpage.htm”);
exit();
?>
301 редирект WWW
Редирект домена с WWW на домен без WWW осуществляется в .htaccess с помощью такого кода:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
или же такого, более понятного:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.sait\.com$ [NC]
RewriteRule ^(.*)$ http://sait.com/$1 [R=301,L]
Обратный редирект домена от без WWW на домен с WWW осуществляется таким образом:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sait\.com$ [NC]
RewriteRule ^(.*)$ http://www.sait.com/$1 [R=301,L]
или же, альтернативным кодом:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
301 редирект для Joomla
Давайте разберем установку редиректа на одной из самых популярных CMS — Joomla. Для этого нам придется выполнить несколько несложных действий:
- В корневой папке сайта находим файл .htaccess
- Создаем его резервную копию, на случай возможных проблем.
- Находим нужные нам строки:
########## Begin — Joomla! core SEF Section
#
Информация
#
######### End — Joomla! core SEF Section
- В последней строке в квадратных скобках будет расположен атрибут L, который следует удалить.
- Далее добавляем нужный нам код. Допустим нам необходим редирект домена с WWW на без WWW, а значит мы добавляем следующий код:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www.site.com [NC]
RewriteRule ^(.*) http://site.com/$1 [L,R=permanent]
- Далее необходимо проверить правильность работы редиректа, доступность внутренних страниц. Если нигде не была допущена ошибка — то спокойно всё оставляем, если что-то не так - восстанавливаем резервную копию и повторяем весь путь заново.
На этом статья подходит к логическому завершению. Выше вы прочли и увидели примеры кодов для использования редиректа.
Теперь я более чем уверен, что вы сможете настроить редирект и у себя на сайте.