» » Настраиваем 301 редирект через htaccess и php

Настраиваем 301 редирект через htaccess и php

Если вы переносите сайт на другой домен, или изменяете адреса страниц сайта, то появлятеся необходимость перенаправлять пользователей на эти новые адреса. И тут на помощь приходит 301 редирект, или как он называется в оригинале - 301 Permanent Redirect. Если сайт или страница сайта возвращает пользователю 301-ую ошибку, значит данная страница доступна по новому адресу, и следовательно нам нужно перенаправить пользователя на данную страницу, при заходе на старую. Для поисковиков же 301 редирект означает перенос всех параметров сайта, включая все показатели - PR, ТИЦ, ссылочную массу и так далее. Именно поэтому, новый домен войдет в индекс поисковых систем на те же позиции.

Давайте рассмотрим несколько самых популярных случаев применения 301 редиректа:
  1. Перенос сайта на другой домен
  2. Смена CMS
  3. Редирект домена без WWW на домен с WWW
  4. Смена адреса страницы

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

301 редирект на PHP

Редирект осуществляемый при помощи скрипта, отправляющий посетителю необходимые заголовки. Вот так выглядит код PHP редиректа:
<?php
 header(“HTTP/1.1 301 Moved Permanently”);
 header(“Location: http://www.newdomain.ru/newdir/newpage.htm”);
 exit();
?>

Редирект домена с WWW на домен без 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. Для этого нам придется выполнить несколько несложных действий:
  1. В корневой папке сайта находим файл .htaccess
  2. Создаем его резервную копию, на случай возможных проблем.
  3. Находим нужные нам строки:
  4. ########## Begin — Joomla! core SEF Section
    #
    Информация
    #
    ######### End — Joomla! core SEF Section

  5. В последней строке в квадратных скобках будет расположен атрибут L, который следует удалить.
  6. Далее добавляем нужный нам код. Допустим нам необходим редирект домена с WWW на без WWW, а значит мы добавляем следующий код:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.site.com [NC]
    RewriteRule ^(.*) http://site.com/$1 [L,R=permanent]
Далее необходимо проверить правильность работы редиректа, доступность внутренних страниц. Если нигде не была допущена ошибка — то спокойно всё оставляем, если что-то не так — восстанавливаем резервную копию и повторяем весь путь заново.

На этом все, теперь вы можете перенаправлять ваших пользователей и поисковые системы на новые страницы вашего сайта, или же на новый домен
5-09-2018, 22:23 29 0

Комментарии


Добавление комментария