.htaccess - .htaccess
.Htaccess ( гипертекстовый доступ файл) представляет собой каталог уровневый файл конфигурации поддерживается несколькими веб - серверов , используемых для настройки веб - сайта -Access вопросов, таких , как перенаправление URL , URL укорочение , контроль доступа (для различных веб - страниц и файлов), и более. «Точка» ( точка или точка ) перед именем файла делает его скрытым в средах на основе Unix .
Сайт может иметь более одного .htaccessфайла, и эти файлы размещаются внутри веб-дерева (т. Е. Внутри каталогов и их подкаталогов), и, следовательно, их другое имя - файлы распределенной конфигурации .
.htaccessФайлы действуют как подмножество файла глобальной конфигурации сервера (например httpd.conf) для каталога, в котором они находятся, или всех подкаталогов.
Первоначальная цель - .htaccessотраженная в его названии - заключалась в том, чтобы разрешить управление доступом к каталогу, например, путем запроса пароля для доступа к содержимому World Wide Web . Однако чаще всего .htaccessфайлы определяют или переопределяют многие другие параметры конфигурации, такие как тип содержимого, набор символов , обработчики интерфейса общего шлюза и т. Д.
Формат и язык
.htaccessфайлы написаны в варианте директив Apache языка Perl-совместимых регулярных выражений (PCRE). Само изучение основ PCRE может помочь в освоении работы с этими файлами.
По историческим причинам формат .htaccessфайлов является ограниченным подмножеством файла глобальной конфигурации HTTP-сервера Apache,httpd.conf даже если он используется с веб-серверами, такими как Oracle iPlanet Web Server и Zeus Web Server, которые имеют очень разные собственные файлы глобальной конфигурации.
Общее использование
- Авторизация , аутентификация
- Файл .htaccess часто используется для указания ограничений безопасности для каталога, отсюда и имя файла " access". .htaccessФайл часто сопровождается .htpasswdфайлом , который хранит действительные имена пользователей и их пароли .
- Перезапись URL
- Серверы часто используют .htaccessдля перезаписи длинных чрезмерно исчерпывающих URL-адресов на более короткие и запоминающиеся.
- Блокировка (контроль доступа)
- Используйте разрешить / запретить, чтобы заблокировать пользователей по 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часто предпочтительнее по соображениям безопасности и производительности:
- Потеря производительности
- Для каждого HTTP-запроса существуют дополнительные обращения к файловой системе для родительских каталогов при использовании .htaccess, чтобы проверить, возможно, существующие .htaccessфайлы в тех родительских каталогах, которым разрешено хранить .htaccessфайлы. Если эта потеря производительности вызывает беспокойство, можно программно перенести директивы из .htaccessв httpd.confв.
- Безопасность
- Разрешение отдельным пользователям изменять конфигурацию сервера может вызвать проблемы с безопасностью, если он не настроен должным образом.
- Синтаксис
- .htaccessобычно очень чувствителен к синтаксическим ошибкам. Из-за этого любые орфографические ошибки могут привести к ошибкам сервера, а веб-ресурсы в каталоге, а ошибочные .htaccessвообще не будут отображаться.
В популярной культуре
Части видеоигры 2020 года Mackerelmedia Fish , в которой исследуются темы интернет-культуры, были реализованы непосредственно в открытых .htaccessкаталогах веб-сайта .