Главная страница | IT-студия |
|
Информационный портал
|
| Работа с Apache | .htaccess .htaccessАвтор - Голышев С.В. В этой статье обсуждается — что такое .htaccess, зачем он нужен, и как его можно использовать. .htaccess (с точкой в начале имени) – это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу. Например, устанавливать права доступа к файлам в директории, менять названия индексных файлов, самостоятельно обрабатывать ошибки Apache, перенаправляя посетителей на специальные страницы ошибок. Как известно, конфигурационные директивы сервера Apache находятся в файлe httpd.conf. Но далеко не всегда у Вас будут права доступа к этому файлу. Например, если Вы используете для хостинга виртуальный сервер, когда один сервер Apache обслуживает множество сайтов, то, естественно, Вам никто не позволит менять его конфигурацию. Но, тем не менее, вы можете конфигурировать работу сервера в своих директориях. И делать вы это можете с помощью файлов .htaccess. Файл .htaccess может быть размещен в любом каталоге. Директивы этого файла действует на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами нижележащих файлов .htaccess). Изменения, вносимые в файлы .htaccess, вступают в силу немедленно и не требуют перезагрузки сервера, в отличие от изменений, вносимых в главный конфигурационный файл httpd.conf. Настройки httpd.conf, разрешающие применение файлов .htaccessДля того, что бы эти файлы .htaccess можно было использовать — необходимы соответствующие настройки главного конфигурационного файла. В файле httpd.conf должны быть прописаны директивы, которые разрешат файлу .htaccess переопределять конфигурацию web-сервера в каталоге. Эта директива называется AllowOverride. Она может быть установлена как для всего сервера (глобально), так и для отдельного каталога. Директива AllowOverride может включать в себя одну из следующих директив или их комбинацию: Для того чтобы дать директивам файлов .htaccess максимальные права следует прописать в httpd.conf:
ПримечаниеПри желании название конфигурационного файла можно изменить, и например, назвать его не .htaccess, a access.conf. За название этого файла отвечает директива AccessFileName в файле httpd.conf. Но все же рекомендуется этого не делать. Синтаксис .htaccessПеред тем, как будут рассмотрены примеры, остановимся на синтаксисе директив в файлах .htaccess.
Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо можете посмотреть сами, запустив на сайте функцию PHP — phpinfo(). Она выведет на экран конфигурацию PHP в виде фиолетовых таблиц. В них Вам необходимо найти переменную doc_root и посмотреть ее значение — это будет путь от корня сервера до Вашей основной директории.
Примеры использования .htaccessГлобальное перенаправление (редирект) на другой адрес:
Перенаправление (редирект) только при запросе определенных страниц:
При запросе страниц из каталогов company и forum будет произведено перенаправление на новые адреса. Перенаправление (редирект) только посетителей с определенным IP-адресом:
Если посетитель имеет IP-адрес 192.145.121.1, то ему будет открыта страница only_for_you.html. Изменение названия индексной страницы:
Можно указать несколько индексных страниц. При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Если не будет найден файл index.html, то будет произведен поиск файла index.php и т.д. Выполнять код PHP в файлах HTML
Добавив эти строки в .htaccess вы дадите директиву серверу выполнять инструкции PHP не только в файлах с расширением *.php и *.phtml, но и в файлах с расширением *.htm и *.html. Обработка ошибок Apache
При возникновении этих ошибок посетитель будет перенаправлен на специально созданные страницы.
Запрет на отображение содержимого каталога при отсутствии индексного файла
Определение кодировки, в которой сервер "отдает" файлы
Определение кодировки на загружаемые файлы
Запрет доступа ко всем файлам
Запрещен доступ ко всем файлам и каталогам в текущей директории. Разрешить доступ только с определенного IP-адреса
Строка order deny,allow определяет, в каком порядке следует выполнять директивы. Сначала выполняется директива запрета доступа, а затем разрешается доступ только для IP-адреса 195.135.232.70. Если в первой строке поменять порядок следования директив на order allow,deny, то доступ для данного IP-адреса не будет открыть, так как директива deny, выполняемая последней перекроет действия директивы allow. Запретить доступ с определенного IP-адреса
Запретить доступ к определенному файлу
Запрещен доступ посетителей к файлам config.php. Этот запрет не действует на скрипты web-сервера. Они по прежнему будут иметь доступ к этому файлу. Запретить доступ к файлам с определенным расширением
Здесь запрещен доступ к файлам с расширением *.conf. Директива
Запретить доступа к файлам с несколькими типа расширений
Запрещен доступ к файлам с расширением *.inc, *.conf и *.cfg. Хотя директива Установка пароля на директорию
Установка прав доступа с помощью файлов .htaccess более подробно рассмотрена рассмотрена статье: |