Привет, друзья! Павел Гречко на связи, и в этой статье я расскажу вам про 301 редиректы в .htaccess — готовый список шаблонов, правила безопасности и лайфхаки, которые спасут ваш сайт от падения трафика и поломанных форм.

Содержание

Если вы хоть раз сталкивались с переездом сайта, сменой ЧПУ, редизайном или просто хотите избавиться от дублей — эта статья станет вашей технической библией. Здесь нет воды — только проверенные шаблоны, реальные примеры, предупреждения и инструкции, которые работают в 2025 году.

✅ Сохраните эту статью в закладки — вы будете возвращаться к ней снова и снова.


1. Введение — Зачем это всё нужно?

301 редирект — это постоянное перенаправление.
Он говорит поисковикам: «Эта страница уехала навсегда, вот её новый адрес — перенеси туда весь вес, трафик и позиции».

Без 301 редиректа:

  • Теряете трафик.
  • Получаете дубли страниц.
  • Портите поведенческие факторы.
  • Можете улететь из индекса.

А .htaccess — это главный инструмент управления редиректами на серверах Apache. Он позволяет настраивать правила без доступа к основному конфигу — идеально для хостингов.

⚠️ ВАЖНО: После настройки глобальных правил (HTTPS, WWW, слеши) — ставьте задачу разработчику: проверить формы и корзину! Часто после редиректов перестают приходить заявки и заказы. Не игнорируйте это.


2. Основы: Что такое .htaccess и как с ним работать

2.1. Что это за файл?

.htaccess — конфигурационный файл веб-сервера Apache.
Он позволяет управлять:

  • Редиректами
  • Правами доступа
  • Кэшированием
  • Защитой от ботов
  • Кастомными страницами ошибок

И всё это — без правки основного конфига сервера.


2.2. Где взять и как редактировать?

Файл .htaccess находится в корне сайта (там же, где index.php или index.html).

👉 Как его увидеть?

  • Включите отображение скрытых файлов в вашем FTP-клиенте (например, FileZilla).
  • Или через файловый менеджер хостинга.

🚫 НЕ РЕДАКТИРУЙТЕ ФАЙЛ ЧЕРЕЗ АДМИНКУ САЙТА!
Если что-то пойдёт не так — сайт упадёт, и вы не сможете зайти в админку, чтобы поправить.
Редактируйте только через FTP или файловый менеджер хостинга.

💡 Новичок? → Гайд по работе с FTP (скачать FileZilla, подключиться, редактировать файлы)


2.3. 6 Железных правил работы с .htaccess

Перед тем как лезть в файл — запомните эти правила. Они спасут вам жизнь:

  1. Имя файла — строго .htaccess
    Без .txt, .old, .backup. Иначе сервер его проигнорирует.
  2. Вставляйте в самое начало файла:
   Options +FollowSymLinks
   RewriteEngine On
   RewriteBase /

Без этого — редиректы не заработают.

  1. Порядок правил — священен:
  • Сначала — постраничные редиректы (страница → страница).
  • Потом — раздел → раздел.
  • В конце — глобальные (HTTPS, WWW, слеши).
  1. Комментарии = #
    Всё, что идёт после # — игнорируется сервером.
    Пишите пояснения — через год сами скажете себе спасибо:
   # Редирект старой категории товаров
   RewriteRule ^old-category/(.*)$ /new-category/$1 [R=301,L]
  1. Создайте резервную копию
    Перед любым редактированием — скачайте оригинал себе на ПК.
    Если что-то сломается — загрузите обратно за 10 секунд.
  2. Тестируйте на примерах
    Не гадайте — смотрите реальные кейсы ниже. Я собрал всё, что работает.

3. Готовые шаблоны 301 редиректов — с примерами и пояснениями

📌 Все примеры адаптированы под разные CMS и кейсы. Меняйте site.ru на свой домен!


3.1. Редирект со страницы на страницу

Самый частый кейс — поменяли URL статьи, товара или услуги.

# Простой редирект
Redirect 301 /old-page.html https://site.ru/new-page.html

# Для MODX
RewriteRule ^old-page/$ /new-page/ [R=301,NC,L]

# Для OpenCart (с параметрами)
RewriteCond %{QUERY_STRING} ^_route_=old-page/old-page/$
RewriteRule ^(.*)$ https://site.ru/new-page/new-page/? [R=301,L]

# Кириллица → латиница (если домен на кириллице)
Redirect 301 /ru/product/старая-страница/ https://xn--b1aghu1a.xn--p1acf/ru/product/novaya-stranicza/

⚠️ URL с пробелами? Заключайте в кавычки:

Redirect 301 "/old page with spaces" "https://site.ru/new-page"

3.2. Редирект с домена на домен

Переезд на новый домен? Вот как перенаправить всё:

# Только главная → главная нового сайта
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ https://new-site.ru/ [L,R=301]

# Все страницы → все страницы нового домена
RewriteCond %{HTTP_HOST} ^old-site\.ru$ [NC]
RewriteRule ^(.*)$ https://new-site.ru/$1 [R=301,L]

3.3. Редиректы с GET-параметрами

Фильтры, UTM-метки, ID товаров — всё можно перенаправить.

# Редирект по product_id
RewriteCond %{QUERY_STRING} (?:^|&)product_id\=858(?:$|&)
RewriteRule ^index\.php$ /catalog/new-product? [L,R=301]

# Комплексный редирект (URI + параметры)
RewriteCond %{REQUEST_URI} ^/component/virtuemart/$
RewriteCond %{QUERY_STRING} ^page=shop.browse&category_id=12
RewriteRule ^.*$ /arenda-gruzovogo-avto.html? [R=301,L]

3.4. Редирект HTTP → HTTPS (5 рабочих вариантов)

Безопасность и SEO требуют HTTPS. Вот рабочие шаблоны:

# Универсальный вариант
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Альтернативы — если первый не сработает:
RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

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

3.5. Редиректы со слешами (/)

Убираем дубли и нормализуем URL.

# Убрать дублирующие слеши
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]

# Убрать слеш в конце (если не директория)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]

# Добавить слеш в конце (если не файл)
# ⚠️ НЕ ИСПОЛЬЗУЙТЕ на Elementor!
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^(.*)$ $1/ [L,R=301]

3.6. Редирект www ↔ без www

Выбираем канонический домен.

# С www → без www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# Без www → с www
RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
RewriteRule ^(.*)$ https://www.site.ru/$1 [R=301,L]

# Для кириллических доменов (Punycode)
RewriteCond %{HTTP_HOST} ^www\.xn--80adaxca8c\.xn--p1ai$ [NC]
RewriteRule ^(.*)$ https://xn--80adaxca8c.xn--p1ai/$1 [R=301,L]

💡 Комбо-правило: HTTPS + WWW за 1 редирект:

RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

3.7. Массовые редиректы (категории, расширения)

# Категория → категория
RewriteCond %{REQUEST_URI} ^(.*)/old-category/(.*)$
RewriteRule ^(.*)$ %1/new-category/%2 [R=301,L]

# Убрать .html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.html\ HTTP
RewriteRule ^([^.]+)\.html$ /$1 [R=301,L]

# Убрать index.php / index.html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html)\ HTTP/
RewriteRule ^(.*)index\.(php|html)$ /$1 [R=301,L]

3.8. Редиректы на страницы ошибок

Кастомные 404, 403, 500 — улучшают UX.

ErrorDocument 404 /404.html
ErrorDocument 403 /errors/403.html
ErrorDocument 500 /errors/500.html

3.9. Редирект с верхнего регистра в нижний

Осторожно — может сломать картинки или создать циклы.

# Вариант 1 (если поддерживается)
RewriteCond expr "tolower(%{REQUEST_URI}) =~ /(.+)/"
RewriteRule [A-Z] %1 [R=301,L]

# Вариант 2 (требует правки httpd.conf — через поддержку хостинга)
# Добавить в httpd.conf: RewriteMap lc int:tolower
# Затем в .htaccess:
RewriteCond %{REQUEST_URI} ^[^A-Z]*[A-Z].*
RewriteRule ^ https://%{HTTP_HOST}${lc:%{REQUEST_URI}} [L,R=301]

3.10. Защита и безопасность

Закрыть сайт от индексации (временно):

SetEnvIfNoCase User-Agent ".*(googlebot|yandex|bingbot|baiduspider).*" search_robot
Deny from env=search_robot

Защита от хотлинкинга (воровства картинок):

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?site\.ru [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [F,NC,L]

Блокировка вредоносных ботов:

SetEnvIfNoCase User-Agent ".*(AhrefsBot|SemrushBot|MegaIndex|spbot).*" botstop
Deny from env=botstop

4. Опасные ошибки и как их избежать

  • Циклические редиректы — проверяйте условия. Используйте curl -I для диагностики.
  • Ломаются формы — особенно после правил со слешами или HTTPS. Всегда проверяйте заказы!
  • OpenCart баг — если редиректы идут после RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] — перенесите их ВЫШЕ.
  • Неправильный порядок — сначала частные, потом глобальные.
  • Забыли [L] — правило не останавливается → непредсказуемое поведение.

5. Инструменты для проверки

  • Консоль: curl -I https://site.ru/old-page
  • Онлайн: Redirect Checker, HTTP Status Code Checker
  • Браузер: Redirect Path (расширение Chrome)
  • SEO: Screaming Frog, Sitebulb, Ahrefs Site Audit

6. Заключение — Лайфхаки от практика

Друзья, если вы дочитали до сюда — вы уже на шаг впереди 90% SEO-специалистов.

📌 Сохраните эту статью — пригодится при:

  • Переезде сайта
  • Смене CMS
  • Обновлении ЧПУ
  • Оптимизации структуры

✅ Обязательно:

  • Тестируйте каждый редирект.
  • Комментируйте правила.
  • Ставьте задачу разработчику — проверить формы и корзину.

👍 Если материал помог — поставьте лайк!
💬 Есть вопросы или нужны дополнительные шаблоны — пишите в комментариях!


8. FAQ

❓ Что делать, если сайт упал после правки?
→ Загрузите резервную копию через FTP. Всё вернётся за 30 секунд.

❓ Можно ли использовать 302?
→ Только для временных перенаправлений. Для постоянных — только 301.

❓ Сколько хранятся 301 редиректы?
→ Вечно. Браузеры и поисковики кэшируют их надолго.

❓ Как проверить, работает ли редирект?
→ Через curl -I в консоли или онлайн-чекеры типа Redirect Checker.


9. Полезные ссылки


Автор: Павел Гречко
Технический SEO-специалист с 8+ годами опыта. Помог переуехать 127 сайтам без потерь трафика.


Оцените эту статью