Как сделать 301 редирект через htaccess и php - solaris-spb.ru

301 редирект

При переносе сайта на другой домен или изменении адресов страниц сайта вам необходимо перенаправитьŒ пользователя на новый адрес. И именно здесь нам на помощь приходит 301 Permament Redirect.

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

Случаи применения 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

Есть еще редирект 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. Для этого нам придется выполнить несколько несложных действий:

  1. В корневой папке сайта находим файл .htaccess
  2. Создаем его резервную копию, на случай возможных проблем.
  3. Находим нужные нам строки:
    ########## Begin — Joomla! core SEF Section
    #
    Информация
    #
    ######### End — Joomla! core SEF Section
  4. В последней строке в квадратных скобках будет расположен атрибут L, который следует удалить.
  5. Далее добавляем нужный нам код. Допустим нам необходим редирект домена с WWW на без WWW, а значит мы добавляем следующий код:

    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.site.com [NC]
    RewriteRule ^(.*) http://site.com/$1 [L,R=permanent]

  6.  Далее необходимо проверить правильность работы редиректа, доступность внутренних страниц. Если нигде не была допущена ошибка — то спокойно всё оставляем, если что-то не так - восстанавливаем резервную копию и повторяем весь путь заново.

На этом статья подходит к логическому завершению. Выше вы прочли и увидели примеры кодов для использования редиректа.

Теперь я более чем уверен, что вы сможете настроить редирект и у себя на сайте.

Комментировать

Комментарии: 2
  1. 11.11.2022 - Александр сказал:

    А почему для джумлы перманентом, а не 301 редиректом?

    ОтветитьОтветить
  2. 24.02.2023 - Игорь сказал:

    Нужен редирект со старой ссылки на новую. Старая ссылка выглядела так: «название_сайта.ру/название_категории», теперь создал подкатегорию и ссылка поменяла имя: «название_сайта.ру/название_категории/название_подкатегории». Заранее спасибо.

    ОтветитьОтветить
Ваш комментарий
🍧 18 видеочат рулетка