ИНСТР-HTACCESS-HTTPSApache 2.4Готовые шаблоныревизия 2026-05-07

.htaccess HTTPS и WWW

Готовые .htaccess шаблоны для Apache: force HTTPS, удаление www, trailing slash, HSTS. Скопировал — вставил — работает.

⏱ работает в браузере · без регистрации
Инструмент · ИНСТР-HTACCESS-HTTPS|real-time
calcal.ru / htaccess-redirect-https-www-shablon
Загрузка инструмента…
301
Permanent redirect
HSTS
Strict Transport
Apache
mod_rewrite
0
Запросов к серверу

Зачем редиректы

Редиректы HTTP → HTTPS и обработка www — обязательная часть SEO-оптимизации любого сайта. Без них: Google и Яндекс могут проиндексировать обе версии (HTTP и HTTPS, с www и без) — это создаёт дубли контента, что снижает ранжирование. Также пользователи получают предупреждение «Not secure» в браузере.

В этом руководстве — готовые шаблоны .htaccess для всех типичных задач. Скопируйте, вставьте в свой .htaccess в корне сайта, проверьте. Конфиги для Apache 2.4 с включённым mod_rewrite (включён по умолчанию).

Готовые шаблоны

1. Force HTTPS (для всех URL)

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

Перенаправляет все HTTP-запросы на HTTPS-версию того же URL. Сохраняет путь и query string. R=301 — постоянный редирект, передаёт SEO-вес.

2. Удалить www (HTTP и HTTPS)

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

Преобразует www.example.com → example.com (без www). Также форсит HTTPS. NC — Not Case (без учёта регистра).

3. Добавить www

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]

Замените example.com на ваш домен. Если хотите ВСЕГДА с www (вариант 4), но без www тоже работало (без редиректа) — настройте альтернативно.

4. Force HTTPS + удалить www (комбо, ОПТИМАЛЬНОЕ)

RewriteEngine On

# Force HTTPS
RewriteCond %{HTTPS} off [OR]
# Remove www
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

Один-двух-шаговый редирект (вместо двух последовательных). Если HTTP или с www — сразу на HTTPS без www. Замените example.com на ваш домен.

5. Удалить trailing slash

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ /$1 [L,R=301]

Преобразует /page/ → /page. Условие !-d проверяет что это НЕ директория (директории должны иметь slash, иначе ломается доступ к /folder/index.html).

6. Добавить trailing slash

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [L,R=301]

Преобразует /page → /page/. Условие !-f исключает файлы (.html, .css, .js не должны иметь slash).

В большинстве случаев следует помещать правила mod_rewrite в основном конфигурационном файле, а не в .htaccess. Файлы .htaccess читаются с диска при каждом запросе, что создаёт нагрузку. Используйте .htaccess только если у вас shared hosting без доступа к main config.Apache HTTP Server Documentation, mod_rewrite

HSTS для безопасности

HSTS (HTTP Strict Transport Security) — это HTTP-заголовок, который браузер запоминает: «для этого домена ВСЕГДА HTTPS, не делать HTTP-запросов». Защита от SSL stripping.

<IfModule mod_headers.c>
  Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>
  • max-age=31536000 — год (в секундах). Браузер помнит, что сайт всегда HTTPS.
  • includeSubDomains — применить и к поддоменам. Если есть HTTP-поддомены, не добавляйте.
  • preload — позволяет добавить домен в встроенный preload-список Chrome/Firefox через hstspreload.org.

ВНИМАНИЕ: HSTS «застревает» в браузерах. Если опубликовали с max-age=31536000, потом передумали — пользователи в течение года будут получать ошибку. Для тестов сначала ставьте max-age=300 (5 минут).

Дополнительные security-заголовки

<IfModule mod_headers.c>
  # XSS защита (deprecated, но не вредит)
  Header set X-XSS-Protection "1; mode=block"

  # Защита от MIME sniffing
  Header set X-Content-Type-Options "nosniff"

  # Запрет iframe (защита от clickjacking)
  Header set X-Frame-Options "SAMEORIGIN"

  # Referrer policy
  Header set Referrer-Policy "strict-origin-when-cross-origin"

  # Permissions Policy (бывший Feature Policy)
  Header set Permissions-Policy "geolocation=(), microphone=(), camera=()"
</IfModule>

Как проверить редиректы

  • curl -I http://example.com — посмотреть заголовки. Должен быть HTTP/1.1 301 Moved Permanently и Location: https://example.com/.
  • Chrome DevTools → Network → ищите цепочку редиректов. Идеально — один редирект, не два.
  • httpstatus.io — онлайн-проверка цепочки редиректов. Покажет, сколько прыжков и финальный URL.
  • Yandex Webmaster → раздел «Индексирование» → «Страницы в поиске» — видно, как поисковик обрабатывает редиректы.
  • SSL Labs SSL Test (ssllabs.com/ssltest) — проверка HTTPS-конфигурации, в том числе HSTS.
ИСТОЧНИКИ
  1. Apache mod_rewrite Documentation. Apache Software Foundation. httpd.apache.org/docs/2.4/mod/mod_rewrite.html. 2024.
  2. RFC 6797 — HTTP Strict Transport Security. IETF. datatracker.ietf.org/doc/html/rfc6797. 2012.
  3. OWASP — Secure Headers Project. OWASP. owasp.org/www-project-secure-headers. 2024.
ЧАСТЫЕ ВОПРОСЫ

Часто задаваемые вопросы

HTTPS обязателен для современных сайтов. Причины: (1) SEO — Google и Яндекс предпочитают HTTPS-страницы. (2) Безопасность — данные шифруются в транзите. (3) Доверие — браузеры показывают "Not secure" для HTTP. (4) Современные API (Geolocation, Service Workers, Push Notifications) работают только на HTTPS. (5) HTTP/2 / HTTP/3 — только через HTTPS. Без HTTPS-редиректа пользователи могут попасть на HTTP-версию и получить предупреждение в браузере.
Технически без разницы. Главное — выберите ОДИН вариант и придерживайтесь его. Без www (apex domain) — короче, моднее, проще. С www — традиционно (исторически www = "World Wide Web"), позволяет использовать CDN для root-домена (некоторые CDN не поддерживают apex). Решение: для нового сайта — без www. Для существующих с трафиком — оставьте как есть. Главное — в robots.txt и sitemap.xml укажите канонический домен, и в Search Console / Яндекс.Вебмастере добавьте оба варианта.
В корне домена: /var/www/example.com/.htaccess или public_html/.htaccess. Файл начинается с точки — скрытый. Чтобы создать через FTP/SSH: <code>touch .htaccess && nano .htaccess</code>. После изменения файла настройки применяются мгновенно (без перезапуска Apache). Если изменения не работают — проверьте, что в /etc/apache2/apache2.conf указано <code>AllowOverride All</code> для вашей директории, иначе Apache игнорирует .htaccess.
Нет. .htaccess — только Apache. Nginx использует свой формат конфигурации (server блоки в /etc/nginx/sites-enabled/). Если у вас Nginx, конфиги .htaccess не работают, нужно переписывать. На VPS обычно стоит Nginx, на shared hosting — часто Apache. Проверить: <code>curl -I example.com</code> — заголовок Server покажет «Apache» или «nginx».
R=301 — постоянный редирект (Moved Permanently). Поисковики обновляют свой индекс, передают SEO-вес новому URL. R=302 — временный (Found). НЕ передаёт SEO-вес. Для HTTPS / WWW редиректов ВСЕГДА используйте R=301 — это постоянное изменение. Дополнительно: L означает "Last Rule" — после совпадения остановиться и не обрабатывать остальные правила. Без L могут конфликтовать несколько правил.
Каждый редирект = дополнительный round-trip пользователя. HTTP → HTTPS добавляет ~50-200 мс. HTTPS://www → HTTPS:// (без www) — ещё столько же. Если у пользователя 2 редиректа подряд — задержка до 0.5 секунды. Решение: настройте чтобы редирект был ОДИН (например, HTTP://www → HTTPS:// без www, не цепочкой). Также используйте HSTS (Strict-Transport-Security) — браузер запоминает HTTPS на год и сразу обращается к HTTPS, без редиректа на сервере.
HSTS (HTTP Strict Transport Security) — заголовок, который сообщает браузеру "всегда используй HTTPS для этого домена". После первого визита браузер запоминает на N секунд (max-age) и НЕ делает HTTP-запросов. Это убирает уязвимость SSL stripping (когда атакующий перехватывает HTTP-запрос и возвращает фейковую страницу). Заголовок: <code>Strict-Transport-Security: max-age=31536000; includeSubDomains; preload</code>. preload — добавление в встроенный список Chrome / Firefox.
На уровне сервера — выберите один вариант, второй редиректьте. /page и /page/ — для поисковика это РАЗНЫЕ URL (дубль контента). Стандарт: для статики (HTML файлы) обычно без слеша, для директорий со слешем. Современные SPA (React, Vue, Next.js) часто без слеша. Главное — последовательность по всему сайту. В .htaccess: <code>RewriteRule ^(.*)/$ /$1 [R=301,L]</code> — убирает trailing slash.
Лиана Арифметова
АВТОРverifiedред. calcal.ru

Лиана Арифметова

Создатель и главный редактор

Миссия: демократизировать сложные расчёты. Превратить страх перед числами в ясность и контроль. Девиз: «Любая повторяющаяся задача заслуживает своего калькулятора».

Mathematical Engineering · МФТИ · редактирует каталог с 2012 года

Был ли этот калькулятор полезен?

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ

Инструмент справочный — не заменяет эксперта

Только для информационных целей. Все расчёты, результаты и данные, предоставляемые инструментом, носят исключительно ознакомительный и справочный характер. Они не являются профессиональной консультацией — медицинской, юридической, финансовой, инженерной или иной.

Точность результатов. Калькулятор основан на общепринятых формулах и методиках, однако фактические результаты могут отличаться в зависимости от индивидуальных условий, исходных данных и применяемых стандартов. Мы не гарантируем полноту, точность или актуальность приведённых расчётов.

Профессиональные решения — медицинские, финансовые, инженерные — должны приниматься только после консультации с квалифицированным специалистом. Не используйте автоматический расчёт как единственное основание для важных решений.

Ограничение ответственности. Авторы и разработчики сервиса не несут ответственности за прямой или косвенный ущерб, возникший из-за использования данных расчётов. Пользователь принимает на себя всю ответственность за интерпретацию результатов.