База знань

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 працюють тільки на серверах з операційною системою Linux, з встановленим сервером Apache з увімкненим модулем Mod-Rewrite.
  • Використання .htaccess створює додаткове навантаження на сервер Apache. Більш ефективно прописувати ті ж команди в конфігураційному файлі httpd.conf, але зазвичай до нього немає доступу у вебмайстра.

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