.htaccess

Материал из Энциклопедия о программировании
Перейти к: навигация, поиск

.htaccess (en HyperText access, ru дословно ГиперТекст доступ или доступ к гипертексту) — файл дополнительного конфигурирования директорий веб-сервера Apache, а также подобных ему серверов.

Преамбула

.htaccess позволяет задавать большое количество дополнительных параметров и разрешений для работы как веб-сервера в отдельных каталогах (папках), так и дополнительного программного обеспечения. Файл позволяет настроить управляемый доступ к каталогам, переназначение типов файлов и т. д., без изменения главного конфигурационного файла httpd.conf. Таким образом файл .htaccess содержит пользовательские настройки web-сервера и анализируется (проверяется сервером) при каждом запросе на сервер.

.htaccess является подобием httpd.conf с той разницей, что его влияние распространяется только на тот каталог, в котором он располагается, и на все дочерние каталоги при условии, что в них нет своих перекрывающих файлов htaccess, которые могут переопределить, дальнейшие по иерархии папок файловой системы, настройки. Возможность использования .htaccess в том или ином каталоге указывается в httpd.conf (директива AllowOverride — разрешить перегрузку).

Размещение

Файл .htaccess может быть размещён в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Для того чтобы эти файлы .htaccess можно было использовать, необходимы соответствующие настройки главного конфигурационного файла (значение директивы AllowOverride должно быть установлено All). Как правило, подавляющее большинство хостеров разрешают использовать свои файлы .htaccess.

В идеале пути к файлам и каталогам должны указываться от корня сервера, например, /var/www/domain.domainzone/htdocs/, но такие строгие правила не всегда обязательны.

Директивы

Директивы файла .htaccess предоставляют пользователю широкий выбор возможностей по настройке своего сайта, среди которых:

  • Директивы простого перенаправления (редирект);
  • Директивы сложного перенаправления (mod_rewrite);
  • Индексные страницы;
  • Обработка ошибок;
  • Кодировка;
  • Управление доступом;
  • Паролирование директорий;
  • Опции PHP.

Например, для вывода всех сообщений об ошибках генерируемых php в файле .htaccess нужно прописать следующие строки:

php_flag display_errors 1
php_flag display_startup_errors 1
php_value error_reporting "E_ALL & ~E_NOTICE"

Для запрещения выполнения php в текущей директории и во всех вложенных необходимо в .htaccess прописать следующие строки:

php_flag engine off

Список всех доступных директив можно посмотреть тут.

Использование

Авторизация, аутентификация
Файлы .htaccess часто используются для указания ограничений для конкретной директории. Файл .htaccess часто используется вместе с файлом .htpasswd, который сохраняет имена пользователей и их пароли для последующей авторизации на уровне протокола HTTP при входе в определенную закрытую директорию.
Собственные страницы ошибок
Изменение страниц, которые отдаются при ошибках на стороне сервера, например HTTP 404 Not Found.
Изменение URL-адресов
Серверы используют .htaccess для изменения длинных, излишне сложных URL-адресов на короткие и легко запоминающиеся.
Контроль кеша
Файлы .htaccess позволяют серверу контролировать кеширование веб-браузерами и кеширующими прокси для уменьшения использования полосы, загрузки сервера и лагов.
Настройка сопутствующего серверного программного обеспечения

Некоторые настройки PHP можно указывать непосредственно в файле .htaccess

Для чего чаще всего используют .htaccess

На виртуальном хостинге чаще всего используется для:

  • паролирования директорий,
  • переадресации страниц,
  • настройки собственных страниц ошибок,
  • определения кодировки,
  • запреты и разрешения,
  • и др.

Это гибкая настройка веб-сервера Апач. С помощью него можно переопределить многие директивы из файла httpd.conf (главный конфигурационный файл сервера Апач). Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех папок, где находится другой файл .htaccess.

Как создать файл .htaccess?

Создать файлы .htaccess можно по сути в любом текстовом редакторе, то есть в Windows Блокноте или встроенном редакторе Far, WindowsCommander, TotalCommander или же используя сторонние специализированные редакторы наподобие Notepad++.

См. также

  • .htpasswd — файл содержащий пароли для доступа к ресурсу у веб-сервера Apache.

Шаблон:Theme