png
к ленте
#20

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

Ноябрь'17

301 редирект означает постоянное перенаправление страницы сайта на новый адрес.

В чем отличие от использования временного редиректа

Ко временным перенаправлениям относят 302, 303 и 307 редиректы. Их использование означает, что в будущем страница будет открываться по старому адресу.

Важно!

  1. Поисковые системы не удаляют из индекса страницу, с которой происходит временный редирект.
  2. Поисковые системы не добавляют в индекс страницу, получающую временный редирект.

Зачем нужен 301 редирект

Есть масса причин, по которым необходимо настраивать переадресацию страниц:

  1. При переработке структуры адресов страниц.
  2. При смене символьного кода у страницы, например, при введении ЧПУ-адресов.
  3. При смене целевой страницы.
  4. При удалении страницы с сайта (в таком случае необходимо настраивать переадресацию, поскольку пользователь может попасть на нее по внешней ссылке).
  5. При доступе страниц с www и без него.
  6. При переезде домена.
  7. При переходе на протокол https.

Как настраивать 301 редирект

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

Для отдельной страницы

Чтобы сделать переадресацию со старой страницы на новую необходимо в файле .htaccess (находится в корневой папке сайта) прописать следующее правило:

Redirect 301 %old_url% %new_url%

Где %old_url% — старый адрес страницы без домена, %new_url% — новый адрес страницы с указанием домена и протокола.

Без www

Если сайт открывается с www, а вам необходимо, чтобы он был доступен без него, то необходимо прописать правило:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.correct-domain.ru
RewriteRule ^(.*)$ http://correct-domain.ru/$1 [R=301,L]

Где correct-domain.ru — адрес Вашего домена.

Для www

Если нужно наоборот, чтобы сайт открывался только с www, пропишите следующий код:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^correct-domain.ru
RewriteRule (.*) http://www.correct-domain.ru/$1 [R=301,L]

При смене домена

Если вы совершаете переезд с одного домена на другой, то надо использовать запись:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.correct-domain\.ru(:80)?$
RewriteRule (.*) http://www.correct-domain.ru/$1 [R=301,L]

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.correct-domain\.ru(:443)?$
RewriteRule (.*) https://www.correct-domain.ru/$1 [R=301,L]

Для виртуального хостинга с http на https

RewriteCond %{HTTP:X-Forwarded-Protocol} !=https RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]