Генератор .htaccess
Редиректы, кеширование и правила безопасности .htaccess для Apache с проверкой конфликтов
Ошибки: 0 · Предупреждения: 0 · Редиректы: 0
Связанные инструменты
Что создаётся
Генератор пишет файл .htaccess для Apache 2.4 под типичные задачи редиректов, скорости и безопасности: принудительный HTTPS, единый канонический хост, порядок со слешами и index.html, свои редиректы 301/302/307/308, сжатие gzip, пресеты кеширования Expires, защита листинга папок и скрытых файлов, базовые заголовки безопасности, необязательный HSTS и свои страницы ошибок. У каждого раздела есть комментарий, а порядок всегда одинаковый, поэтому изменения легко сравнивать.
Проверка конфликтов
Перед записью каждый редирект проверяется на неверный формат источника, небезопасный или неожиданный протокол назначения, дубликаты, редирект на себя, циклы из A в B и обратно и цепочки с лишним переходом. Правила, которые зациклятся или никогда не сработают, не попадают в файл и показываются в разделе находок. Канонический хост и завершающий слеш выбираются одним вариантом, поэтому противоречащие правила вроде добавления и удаления www включить одновременно нельзя.
Важные детали Apache
Все правила перезаписи находятся в одном блоке IfModule mod_rewrite с единственным RewriteEngine On. Смена схемы и хоста выполняется одним редиректом, правила слеша пропускают реальные файлы и папки, а редиректы слеша и index применяются только к запросам GET и HEAD. Контроль доступа использует Require all denied, а не устаревший синтаксис Order и Deny. Блоки, зависящие от модулей, обёрнуты в IfModule: если модуля нет, блок просто пропускается и сайт не ломается.
Перед публикацией
.htaccess работает, только если настройка AllowOverride на сервере разрешает эти директивы; иначе Apache отвечает 500. Положите файл в корень сайта, потому что пути своих редиректов считаются от него. За прокси или CDN, которые завершают TLS, правило HTTPS не видит исходную схему и может зациклиться. Включайте HSTS только когда HTTPS работает везде и начинайте с короткого max-age. Браузеры сохраняют загрузку как htaccess.txt — переименуйте его в .htaccess на сервере. Всё выполняется в вашем браузере, ничего не загружается.
