База знаний

301 Редирект — настройка переадресации

301 редирект (301 Permanent Redirect) — серверное перенаправление при смене адреса сайта или страницы. Этот ответ сервера позволяет автоматически перенаправить пользователя на новый адрес. Поисковые системы при 301-редиректе понимают, что произошла смена URL и в скором времени производят склейку старых и новых адресов.

Настройка 301 редиректа

1.Через php-условие

В этом случае сервером определяется перенаправление и браузер получает команду открыть новый адрес вместо старого. Указать php-редирект можно в корневом файле index.php

Вариант 1:
<?php
header(“HTTP/1.1 301 Moved Permanently”);
header(“Location: http://new-domain.com/index-new.php”);
exit();
?>

Вариант 2:
<?php
if($_SERVER['REQUEST_URI'] == "/index-old.php") { 
header("Location: /index-new.php",TRUE,301); 
exit(); 
}
?>

2.Через конфигурационный файл .htaccess

.htaccess — это конфигурационный файл веб-сервера Apache, позволяющий управлять работой веб-сервера и настройками отдельного сайта без изменения основного конфигурационного файла веб-сервера.

1. Переадресация старой страницы на новую:

Redirect 301 /old.php http://www.mediasova.com/new.php

2. Переадресация старого сайта на новый

Вариант 1:
Redirect 301 / http://new.mediasova.com/
Вариант 2:
RewriteCond %{HTTP_HOST} ^old.mediasova.com [NC]
RewriteRule ^(.*) http://new.mediasova.com/$1 [L,R=301]

3. Переадресация с www на без www и наоборот

Переадресация с www.mediasova.com на mediasova.com
RewriteCond %{HTTP_HOST} ^www.mediasova.com$ [NC]
RewriteRule ^(.*)$ http://mediasova.com/$1 [R=301,L]
Переадресация с mediasova.com на www.mediasova.com
RewriteCond %{HTTP_HOST} ^mediasova.com [NC] 
RewriteRule ^(.*) http://www.mediasova.com/$1 [L,R=301]

4. Редирект с http на https

Вариант 1:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Вариант 2:
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

5. Редирект с https на http

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

6. Переадресация со всех несуществующих поддоменов на Ваш сайт

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

Дополнительно о файле .htaccess:

  • Некоторые настройки, например редирект с http на https или с www на без www, можно делать через настройку хостинга в панели клиента, не внося правки в файл .htaccess
  • Приведенные выше правила настройки для 301-редиректа лучше размещать все правила после двух строк, если они есть в Вашем файле .htaccess:
    Options +FollowSymLinks
    RewriteEngine On
  • Комментарий в файле обозначается символом решётка «#» в начале строки:
    # Текстовый комментарий, данная строчка не будет обрабатываться
  • Методы редиректа с использованием .htaccess работают только на серверах c операционной системой Linux, с установленным сервером Apache с включенным модулем Mod-Rewrite.
  • Использование .htaccess создает дополнительную нагрузку на сервер Apache. Более эффективно прописывать те же команды в конфигурационном файле hpptd.conf, но обычно к нему нет доступа у вебмастера.

Совет SEO-специалиста: 301 редирект – хороший метод сохранения позиций и результатов продвижения сайта в поисковых система при переезде сайта на новый адрес. Корректная настройка 301-редиректа в файле .htaccess также позволяет избежать появления дублей страниц.