Hoster.ru
Hoster.ru
Электролитный проезд, д.3, стр.47 115230 Россия, Москва 8 800 200 05 42
Hoster.ru

Что такое 301 редирект и как его настроить

301 редирект

301 редирект – это специальная директива в коде сайта, которая выполняет несколько функций одновременно:

  • Автоматически перенаправляет пользователя с URL, который он запросил в браузере (ввел вручную, перешел по ссылке или по закладке и т. д.), на другой URL.
  • Показывает поисковым роботам, что страница по адресу, с которого поставлена переадресация 301, теперь будет постоянно находиться по другому адресу, тому, на который идет переадресация. Название 301 кода HTTP так и звучит – Moved Permanently, то есть "перемещено навсегда".
  • Полностью передает ссылочный вес и PageRank страницы, которая редиректится, на страницу, которая выступает в качестве адреса редиректа.

 

Когда нужен 301 редирект?

Постоянная переадресация страницы с кодом 301 – незаменимый инструмент SEO. Она позволяет избежать появления в поисковом индексе дублей, которые негативно влияют на позиции сайта. Дубли могут образовываться из-за технических особенностей формирования URL. К примеру, постраничный адрес может быть представлен:

  • с www в начале (www.your_site.ru);
  • без www (your_site.ru);
  • со слешем на конце URL (your_site.ru/).

Для поисковых роботов все это – разные страницы, так как у них разные URL. Но контент на них одинаковый, поэтому они будут восприняты как дубли.

Поэтому хорошим тоном считается сразу при запуске сайта прописать переадресации на тот тип адреса (с www или без, со слешем или без), который вы будете считать основным.

Точно так же код понадобится, если сайт "переедет" со старого протокола http на https, иначе страницы с https будут проиндексированы как совершенно новые.

Кроме того, переадресация нужна, если:

  • Сайт переехал на другой домен или движок. В этом случае все страницы сайта поменяют свой адрес, и чтобы не потерять их вес и позиции в поисковиках, нужно проставить 301 редирект.
  • Вы удалили какую-то страницу или несколько, но не хотите, чтобы пользователи, переходя по ним, видели ошибку 404. В этом случае можно поставить редирект на другую подходящую или же на главную страницу сайта.
  • Вы хотите автоматически перенаправлять посетителей, которые заходят на сайт со смартфонов или планшетов, на мобильную версию ресурса, а также в других подобных случаях.

 

Как настроить постоянную переадресацию?

301 редирект можно настроить множеством способов. Но наиболее правильным, универсальным и гибким считается настройка редиректа с помощью файла .htaccess – конфигурационного файла Apache. Подходит он, как вы уже догадались, только для серверов с ПО Apache HTTP Server. Но так как на апаче работает большинство существующих веб-серверов, мы ниже разберем именно этот тип настройки.

Также 301 редирект можно настроить в панели управления сервером. Однако таким способом можно прописать только массовые переадресации – склейку зеркал, редирект с http на https и подобные. Для точечных директив этот способ не подходит.

 

Типовые настройки постоянной переадресации с помощью .htaccess

Файл .htaccess находится в корневом каталоге сайта. Доступ к его редактированию можно получить через FTP-клиент или файловый менеджер хостинга.

УУчтите следующие моменты настройки:

  • Правила, прописанные в .htaccess, будут работать для файлов в той папке, где лежит .htaccess, а также во вложенных каталогах.
  • 301 редирект лучше прописывать внутри условия IfModule, так вы исключите падение сайта из-за ошибок.
  • Директивы внутри .htaccess нужно прописывать в таком порядке: сначала частные, потом более общие. То есть правило для редиректа одной страницы на другую нужно располагать выше, чем массовую переадресацию страниц по маске. Это важно, так как директивы выполняются по порядку, и ваш частный случай может быть "поглощен" общим правилом, если оно будет прописано раньше.
  • Правила реврайта нужно размещать после директивы RewriteEngine On.
  • 301 редирект в .htaccess задается с помощью команд RewriteRule и (или) Redirect, RedirectPermanent, RedirectMatch. Чтобы эти правила работали, нужно отдельно включить модуль mod_rewrite и опцию FollowSymLinks (для mod_rewrite) и модуль mod_alias (для остальных).
  • В конце каждого правила в квадратных скобках обязательно указывайте, какой именно редирект применять, с помощью флага – [R=301,L].
  • Не используйте несколько переадресаций подряд. 301 директиву нужно ставить с неактуальной страницы сразу на актуальную. К примеру, если вам нужен редирект с адреса с www со слешем на адрес без www и без слеша, не делайте промежуточную переадресацию на страницу без www, но со слешем.

Далее мы разберем несколько типовых примеров директив редиректа. Отметим, что предлагаемые готовые решения в некоторых случаях могут не работать в связи с особенностями настроек вашей CMS, существующими директивами в .htaccess и другими факторами. В этих случаях лучше обратиться за помощью в техподдержку хостинга или к программисту.

 

Переадресация с http на https или обратно

Редирект всех адресов сайта с http на адреса с https с помощью RewriteRule:

RewriteCond %{HTTPS} !=on

RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Обратный редирект:

RewriteCond %{HTTPS} =on

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

 

301 редирект без www и с www

Для переадресации с адреса, начинающегося на www, на адрес без него пропишите:

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

Не забудьте поменять domain.com на адрес вашего сайта.

Если наоборот нужно адреса без www редиректить на адреса с www, укажите:

RewriteCond %{HTTP_HOST} ^domain.com$ [NC]

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

 

Редирект всех страниц, кроме одной

В некоторых случаях нужна переадресация на https всех страниц сайта, кроме условной your_page.php. Тогда правила редиректа будут иметь следующий вид:/p>

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} !^/your_page.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

 

Редирект только одной страницы

Если вам нужно настроить переадресацию только одной страницы, условной your_page.php, пропишите:

RewriteCond %{HTTPS} =off

RewriteCond %{REQUEST_URI} =/your_page.php

RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

 

301 редирект для страниц со слешем и без

Если нужно настроить редирект со страниц с "/" в конце на страницы без него, пропишите:

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

Если переадресация нужна, наоборот, замените две последние строки предыдущего блока на эти:

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

 

Переадресация всех страниц, отдающих 404 ошибку, на главную сайта

На некоторых сайтах целесообразно задать 301 редирект для всех несуществующих страниц – на главную сайта. Это подходит, например, для новостных сайтов, где тысячи веб-страниц со временем просто исчезают как неактуальные.

Для Apache сервера достаточно будет прописать следующее правило:

ErrorDocument 404 https://domain.com (вместо https://domain.com укажите адрес вашей главной страницы).

 

Настройка 301 редиректа с помощью интерфейса управления сервером

301 редирект можно настроить и в интерфейсе управления сервером. Самые популярные панели – это Cpanel и ISPmanager.

 

Cpanel

В данной панели управления настройка редиректов находится в меню "Домены", подменю "Перенаправления". Здесь указываются домен, с которого нужно сделать переадресацию, параметр "Переадресуется на", тип редиректа – 301, а также параметры перенаправления www.

 

ISPmanager

В данной панели для настройки переадресаций нужно войти в раздел "WWW-домены" и выбрать пункт "Редиректы".

Мы используем файлы cookie. Продолжив работу с сайтом, вы соглашаетесь с Политикой обработки персональных данных.