Редиректы 301 и 302, как сделать в .htaccess

Как сделать 301 редирект
2 сентября 2015Ситуация: Вы переехали на новый домен, или просто купили SSL-сертификат и включили HTTPS. Через неделю замечаете — трафик упал, позиции просели, а в старой выдаче висят битые страницы.
В 90% случаев проблема в одном: забыли настроить 301-редирект, или настроили его неправильно.
301 редирект — это способ сказать поисковику и браузеру: «Эта страница переехала навсегда, заходи по новому адресу». Это важно для SEO, потому что вместе со страницей переезжают и её позиции, и её ссылки (если всё сделано правильно).
Где это настраивается?
Обычно редиректы прописывают в файле .htaccess. Этот файл лежит в корне сайта и работает, только если сайт на Apache (если у вас Nginx — будет совсем другой синтаксис, не путайте).
Файл должен начинаться со строки:
RewriteEngine On
Без неё ничего работать не будет.
Частые примеры редиректов
1. С http на https
Если на сайте есть SSL-сертификат (а он должен быть), обязательно делаем редирект на https:
RewriteCond %{HTTP:X-Forwarded-Protocol} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
2. С www.site.ru на site.ru (или наоборот)
Выбираете, с www или без, и на вторую версию делаете редирект. Пример — убираем www:
RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Если нужен редирект наоборот — просто поменяйте местами.
3. Со старого сайта на новый (постранично)
Если структура не изменилась — каждую страницу старого сайта перекидываем на такую же на новом:
RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ https://newsite.ru/$1 [R=301,L]
4. Со старого сайта на новый (всех на главную)
Когда структура совсем не совпадает, всех отправляем на главную нового сайта:
RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
RewriteRule ^(.*)$ https://newsite.ru/ [R=301,L]
5. Редирект одной страницы на другую
Простейший вариант, подходит и для внешних ссылок, и для внутренних:
Redirect 301 /old-page.html https://site.ru/new-page.html
Что важно помнить
- 301 — это "переезд навсегда", для SEO подходит идеально.
- 302 — это временный редирект, позиции не передаёт. Иногда программисты по привычке ставят его — обязательно проверяйте (например, в Яндекс.Вебмастере в разделе "Ответ сервера").
- Если увидели 302, а нужен 301 — просите переделать.
- Из-за 302 может быть путаница с зеркалами и падение позиций.
Правильный 301-редирект сохраняет до 90–95% веса ссылок и позиций страницы. Неправильный — убивает всё.
Совет от практиков
Если редиректов много — лучше сначала сделать список всех нужных правил, а потом уже править .htaccess. И всегда проверяйте руками — даже опытные разработчики могут случайно настроить не то, особенно на автомате.
Почему это важно
- Без 301 поисковики видят битые страницы (404) и убирают их из выдачи.
- Ссылочный вес старых страниц теряется навсегда.
- Пользователи, которые переходят по старым ссылкам, видят ошибку вместо вашего сайта.
- Правильный редирект делает переезд незаметным как для людей, так и для поисковых систем.




