Что такое .htaccess и когда он не нужен
.htaccess — файл настроек Apache, действующий для каталога. Он полезен, когда хостинг не даёт доступа к основной конфигурации сервера, но не является универсальным файлом для Nginx, IIS и любой инфраструктуры.

До редактирования
- определите Apache и каталог, запросами которого управляет файл;
- сохраните текущую версию и оставьте доступ через файловый менеджер или SSH для отката;
- проверьте, какие директивы хостинг разрешает через
AllowOverride; - меняйте по одному правилу и проверяйте целевой URL вместе с другими страницами.
Если есть административный доступ к серверу, Apache рекомендует основную конфигурацию: она понятнее и не требует искать файлы настроек при каждом запросе.
Распространённые задачи
| Задача | Актуальный подход | Ограничение |
|---|---|---|
| Файл по умолчанию | DirectoryIndex index.html index.php | Директива должна быть разрешена хостингом. |
| Своя страница 404 | ErrorDocument 404 /404.html | Сама страница ошибки должна корректно открываться. |
| Канонический редирект | mod_rewrite с точным условием по хосту и протоколу | Проверьте пути, параметры, CDN/прокси и отсутствие циклов. |
| Ограничение доступа | Директивы Apache 2.4 Require | Старые Order, Allow и Deny устарели. |
| Защита файлов | <FilesMatch> и Require all denied | Секреты лучше не хранить в публичном каталоге. |
Пример редиректа
RewriteEngine On
RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]Это иллюстрация, а не универсальный фрагмент для копирования. Reverse proxy или CDN может менять признаки HTTPS и исходного домена. При неясной инфраструктуре сначала тестируют временный редирект, а постоянный код включают после проверки.
Что не стоит решать случайными фрагментами
- не перенаправляйте мобильных пользователей по User-Agent в отдельную папку — обычно нужен адаптивный дизайн;
- не считайте блокировку нескольких названий ботов защитой: User-Agent легко подменяется;
- не заставляйте браузер скачивать файлы произвольной сменой MIME-типа без проверки;
- не включайте сжатие, кеширование и защитные заголовки одновременно в нескольких слоях.
Проверка и откат
- Проверьте конфигурацию Apache или журнал ошибок хостинга.
- Запросите затронутые URL и изучите статус,
Locationи заголовки. - Проверьте формы, статические файлы, главную и внутреннюю страницу.
- При ошибке 500 или цикле сразу восстановите сохранённый файл.