В этой статье
Что такое .htaccess?
Файл .htaccess (hypertext access) — это конфигурационный файл уровня директории для веб-серверов Apache. Он позволяет переопределять настройки сервера на уровне директории без редактирования главной конфигурации. Распространённые применения: перенаправления URL, контроль доступа, правила кэширования и пользовательские страницы ошибок.
Файл .htaccess читается Apache при каждом запросе, поэтому изменения вступают в силу немедленно без перезапуска сервера. Это стандартный способ настройки Apache на виртуальном хостинге.
Как работает конфигурация .htaccess
Apache обрабатывает директивы .htaccess через систему модулей, где mod_rewrite — наиболее используемый модуль для манипуляций с URL.
- Перезапись и перенаправления URL — правила mod_rewrite преобразуют URL с помощью регулярных выражений для чистых URL и принудительного HTTPS
- Кэширование и сжатие — настройте заголовки кэша браузера с mod_expires и включите GZIP с mod_deflate
- Контроль доступа — ограничьте доступ по IP, требуйте аутентификацию через .htpasswd или блокируйте ботов
Попробуйте бесплатно — без регистрации
Создать правила .htaccess →Когда использовать генератор .htaccess
Ручное написание правил .htaccess требует знания синтаксиса директив Apache и регулярных выражений.
- Принудительный HTTPS — перенаправьте весь HTTP-трафик на HTTPS одним правилом
- Защита от хотлинкинга — предотвратите вставку ваших изображений на других сайтах
- Пользовательские страницы ошибок — определите брендированные страницы 404 и 500
Часто задаваемые вопросы
В чём разница между .htaccess и httpd.conf?
httpd.conf — главный конфигурационный файл Apache, загружаемый один раз при старте. .htaccess читается при каждом запросе и применяется только к своей директории. httpd.conf быстрее, но .htaccess необходим на виртуальном хостинге.
Влияет ли .htaccess на производительность сервера?
Да, незначительно. Apache проверяет .htaccess при каждом запросе. Для нагруженных сайтов перенесите директивы в httpd.conf. Для большинства сайтов влияние ничтожно.
Какой аналог .htaccess в Nginx?
Nginx не поддерживает файлы .htaccess. Вся конфигурация идёт в блок server файла nginx.conf. Nginx перезагружает конфигурацию только по явной команде.