Введение

Файл конфигурации каталога

Файл .htaccess (гипертекстовый доступ) — это файл конфигурации каталога, поддерживаемый несколькими веб-серверами, используемый для настройки вопросов доступа к веб-сайту, таких как перенаправление URL, сокращение URL, контроль доступа (для различных веб-страниц и файлов) и многое другое. Точка перед именем файла делает его скрытым в Unix-подобных средах. Сайт может содержать несколько файлов .htaccess, которые размещаются внутри структуры веб-сайта (то есть внутри каталогов и их подкаталогов), поэтому их также называют распределёнными файлами конфигурации. Файлы .htaccess действуют как подмножество глобального файла конфигурации сервера (например, httpd.conf) для каталога, в котором они находятся, или для всех его подкаталогов. Изначально .htaccess был предназначен для управления доступом к каталогам, например, для защиты содержимого Всемирной паутины с помощью пароля. Однако чаще файлы .htaccess определяют или переопределяют множество других настроек конфигурации, таких как тип контента, кодировка символов, обработчики Common Gateway Interface и т.д.

Формат и язык

Файлы .htaccess написаны на варианте директив Apache языка Perl Compatible Regular Expressions (PCRE). Изучение основ PCRE само по себе может помочь в освоении работы с этими файлами. По историческим причинам формат файлов .htaccess является ограниченным подмножеством глобального файла конфигурации сервера Apache HTTP httpd.conf, даже при использовании с веб-серверами, такими как Oracle iPlanet Web Server и Zeus Web Server, которые имеют существенно отличающиеся собственные глобальные файлы конфигурации.

Распространенное использование

Авторизация, аутентификация Файл .htaccess часто используется для указания ограничений безопасности для каталога, отсюда и название файла "access". Файл .htaccess часто сопровождается файлом .htpasswd, в котором хранятся допустимые имена пользователей и их пароли. Перезапись URL Серверы часто используют .htaccess для преобразования длинных и избыточных URL-адресов в более короткие и запоминающиеся. Блокировка (контроль доступа) Используйте Allow/Deny для блокировки пользователей по IP-адресу или домену. Также используется для блокировки вредоносных ботов, программ для скачивания контента и нежелательных рефералов. SSI Включение серверных включений. Отображение содержимого каталога Управление реакцией сервера при запросе каталога без указания конкретной веб-страницы. Настраиваемые сообщения об ошибках Изменение страницы, отображаемой при возникновении ошибки на стороне сервера, например HTTP 404 Not Found или, для информирования поисковой системы о перемещении страницы, HTTP 301 Moved Permanently. MIME-типы Инструкции для сервера о том, как обрабатывать различные типы файлов. Управление кэшем Файлы .htaccess позволяют серверу управлять кэшированием веб-браузерами и прокси-серверами для ускорения работы веб-сайтов, снижения потребления трафика, нагрузки на сервер и задержек. .htaccess также устанавливает срок действия кэша для ресурсов веб-страницы, чтобы при повторном посещении страницы элементы загружались из кэша браузера до истечения этого срока, а не запрашивались повторно с сервера. HTTPS и HSTS Реализация HTTPS и HSTS на серверах Apache во многом зависит от корректной перезаписи URL и информации в заголовках, указанных в файле .htaccess. Любая синтаксическая ошибка в файле при настройке HTTPS или HSTS может привести к сбою реализации.

Преимущества

Немедленные изменения. Поскольку файлы .htaccess считываются при каждом запросе, изменения, внесенные в эти файлы, вступают в силу немедленно – в отличие от основного файла конфигурации, для применения новых настроек которого требуется перезапуск сервера. Непривилегированные пользователи. Для серверов с несколькими пользователями, например, на общем веб-хостинге, часто желательно предоставить отдельным пользователям возможность изменять конфигурацию своего сайта. Использование файлов .htaccess позволяет такую индивидуализацию, и это могут делать непривилегированные пользователи, поскольку основные файлы конфигурации сервера не требуют изменений.

Недостатки

Контроль Apache с помощью основного файла конфигурации сервера httpd.conf часто предпочтительнее по соображениям безопасности и производительности:

Потеря производительности: При использовании .htaccess для каждого HTTP-запроса выполняются дополнительные обращения к файловой системе родительских каталогов для проверки наличия в них файлов .htaccess, что может снизить производительность. Если это снижение производительности вызывает беспокойство, директивы можно программно перенести из .htaccess в httpd.conf.

Безопасность: Предоставление отдельным пользователям возможности изменять конфигурацию сервера может привести к проблемам безопасности, если это не настроено должным образом.

Синтаксис: .htaccess обычно очень чувствителен к синтаксическим ошибкам. Любые опечатки могут привести к ошибкам сервера и не отображению веб-ресурсов в каталоге с некорректным файлом .htaccess.

В популярной культуре

Части видеоигры Mackerelmedia Fish 2020 года, исследующей темы интернет-культуры, были непосредственно внедрены в открытые каталоги .htaccess веб-сайта.