Как перенаправить весь трафик с HTTP на HTTPS через .htaccess

Узнай, как через .htaccess перенаправить весь трафик с HTTP на HTTPS без головной боли и ошибок

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

04 июля 2026 г. 03:35 MSK — после установки SSL-сертификата первое‚ что должен сделать владелец сайта‚ — настроить жёсткий 301-редирект с HTTP на HTTPS. Это не только защитит данные посетителей‚ но и повысит доверие поисковых систем. Ниже ― подробная инструкция‚ рабочие примеры кода и типичные ловушки‚ которые лучше обойти стороной.


Зачем вообще нужен редирект

  • Безопасность – исключает возможность перехвата трафика по нешифрованному протоколу.
  • SEO – консолидирует вес страниц‚ избегая дублирования контента.
  • Поведение браузера – современные браузеры требуют HTTPS и показывают предупреждения при его отсутствии.

Где находится файл .htaccess

Если файла нет‚ создайте новый без расширения и назовите его именно .htaccess.


Рабочий минимум: универсальный код 301-редиректа

Способ 1. Через проверку HTTPS = off

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{HTTPS} off
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301‚L]
</IfModule>

Добавьте эти строки в самый конец файла и сохраните. Проверьте сайт: любой запрос по http://вашсайт должен мгновенно переходить на https://.

Способ 2. Альтернатива через порт

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{SERVER_PORT} !443
 RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301‚L]
</IfModule>

Актуально для хостингов‚ где переменная %{HTTPS} может некорректно определяться.

Способ 3. С учётом CDN (Cloudflare‚ CloudFront и др.)

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{HTTP:X-Forwarded-Proto} !https
 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301‚L]
</IfModule>

Если за сайтом стоит прокси‚ CDN передаёт заголовок X-Forwarded-Proto.


Если сайт на WordPress

После изменения .htaccess перейдите в админ-панель:
Настройки → Общие и в полях «Адрес WordPress» и «Адрес сайта» укажите https://.
Дополнительно можно добавить в wp-config.php:

define('FORCE_SSL_ADMIN'‚ true);
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') $_SERVER['HTTPS'] = 'on';

Типовые ошибки и как их избежать

  1. Слишком много rewrite-правил. Помещайте редирект до правил маршрутизации CMS.
  2. Лишние пробелы и переносы строк. Синтаксис .htaccess чувствителен к пробелам после флагов.
  3. Отсутствие модуля mod_rewrite. Убедитесь‚ что хостинг поддерживает mod_rewrite (уточните в техподдержке).
  4. Циклический редирект; Отключите старые редиректы в панели хостинга (ISPmanager‚ cPanel‚ Plesk) перед тем‚ как править .htaccess вручную.

Как проверить‚ что всё работает

  • Вбейте в браузере http://вашсайт.ру – должен открыться https://вашсайт.ру без ошибок.
  • В инструментах разработчика Chrome (F12 → вкладка Network) убедитесь‚ что ответ сервера имеет статус 301 Moved Permanently.
  • В Яндекс.Вебмастере и Google Search Console добавьте версию сайта с https и настройте перенос основного зеркала.

Добавьте в .htaccess всего три строки – и ваш сайт будет безопасным и дружелюбным к поисковикам:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(;*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301‚L]

Сохраните файл‚ очистите кеш браузера и CDN. Готово – весь трафик теперь идёт по защищённому протоколу HTTPS!