Как известно, все настройки сервера Apache находятся в файлe httpd. conf, доступ к которому имеется не всегда. Например, если используется виртуальный сервер на хостинге, когда один сервер Apache обслуживает сотни сайтов, то, естественно, нельзя позволить владельцу одного сайта менять конфигурацию сервера, которая отразится на всех остальных сайтах. Тем не менее Web - сервер Apache допускает конфигурирование на уровне отдельных каталогов при помощи файлов . htaccess. Именно на работу с этими файлами, как единственными конфигурационными файлами, которые доступны большинству Web - разработчиков, и будет сделан основной упор в этой статье.
Файл . htaccess (с точкой в начале имени) – это конфигурационный файл, который даёт возможность настраивать работу сервера на уровне отдельных каталогов: устанавливать права доступа к файлам в каталогах, менять названия индексных файлов, самостоятельно обрабатывать коды ответов протокола HTTP, модифицировать адреса запрошенных страниц.
Изменения, вносимые в файлы . htaccess, вступают в силу немедленно и не требуют перезагрузки сервера в отличие от изменений, вносимых в главный конфигурационный файл httpd. conf.
Для того, чтобы файлы . htaccess можно было использовать, необходимы соответствующие настройки главного конфигурационного файла httpd. conf, где должны быть прописаны директивы, которые разрешат файлу . htaccess переопределять конфигурацию Web-сервера в каталоге. Список этих директив задаётся директивой AllowOverride.
Директива AllowOverride может включать в себя одну из следующих директив или их комбинацию: AuthConfig, FileInfo, Indexes, Limit, Options, All, None
Для того чтобы дать директивам файлов . htaccess максимальные права на изменения директив, значение директивы AllowOverride в файле httpd. conf должно быть равно All. Оно является значением по умолчанию.
AllowOverride All
Запретить переопределение любых директив в конфигурационных файлах . htaccess можно при помощи значения None:
AllowOverride None
DirectoryIndex index. php index. shtml index. html
При запросе каталога без указания имени файла сначала будет осуществлён поиск страницы с именем index. php. Если страницы с таким именем нет в каталоге, то аналогичные операции будут произведены с файлом index. shtml и т. д. до конца списка, пока не будет найдена и открыта соответствующая страница. Запрет на отображение содержимого каталога при отсутствии индексного файла Часто требуется запретить отображение списка файлов в каталоге, если не указан или отсутствует индексный файл. Например, запретить отображение содержимого каталога с изображениями. Если такой запрет не поставить, то пользователь, обратившийся напрямую к такому каталогу, получит список всех изображений.
Options –Indexes Обработка кодов ответов Web-сервера Apache Ни один сайт не затрахован от возникновения ошибок. Самой частой ошибкой является переход по ссылке на несуществующую страницу. В этом случае Apache генерирует код ответа 404 и отображает автоматически сгенерированную страницу с сообщением об ошибке. Наличие несуществующих страниц производит плохое впечатление на посетителей сайта. Это впечатление можно сгладить, если вместо стандартных страниц, подставлять собственные страницы с сообщением об ошибке. За назначение страниц - обработчиков кодов ответа протокола HTTP несёт ответственность директива ErrorDocument
ErrorDocument 401 /401. html
ErrorDocument 403 /403. html
ErrorDocument 404 /404. html
ErrorDocument 500 /500. html
После директивы ErrorDocument следует указать код ответа и страницу, на которую необходимо перенаправить посетителя при возникновении данного кода ответа.
RemoveHandler . html . htm
AddType application/x-httpd-php . php . htm . html . phtml
Первая строка удаляет обработчик файлов с расширениями html и htm, а вторая строка сообщает серверу о необходимости использовать для файлов с расширениями htm и html обработчик PHP Задание кодировки файлов на сервере Указанная кодировка отправляется браузеру в заголовке Content-Type и позволит браузеру клиента автоматически переключиться на требуемую кодировку.
AddDefaultCharset Windows-1251 Задание кодировки загружаемых файлов При загрузке файлов на сервер можно указать, в какой кодировке сервер должен ожидать файл.
CharsetSourceEnc windows-1251 Отключение директивы MultiViews Включённая на хостинге опция MultiViews может вызвать неожиданные проблемы, например, отображение несуществующих страниц сайта. Допустим, на сайте существует страница с адресом http://www. sait. ru/down. php, и если посетители обратятся к несуществующему каталогу http://www. sait. ru/down/, то включённая опция MultiViews вместо этого каталога подставит файл down. php. Однако подстановка будет выполнена не полностью - пути к изображениям, таблицам стилей и т. п. будут подставлены неверно. То есть страница будет отображена с искажениями. Для подавления такого поведения Apache опцию MultiViews следует отключить.
Options -MultiViews Запрет доступа к файлам Для того чтобы посетители не могли получить доступ к служебным файлам из окна браузера, можно запретить доступ к таким файлам. Для этого используется директива запрета Deny и разрешения доступа Allow.
При использовании такой директивы будет запрещён доступ из браузера ко всем файлам и каталогам текущего каталога. Запрет доступа к определенному файлу <Files config. php>
Deny from all
</Files>
Здесь запрещен доступ только к файлам с именем config. php. Запрет доступа к файлам расширения inc <Files "*. inc">
Deny from all
</Files>
* - любая последовательность символов, исключая символ слеша (/). Запретить доступа к файлам с несколькими типами расширений <Files ~ ". (inc|conf|cfg)$">
Deny from all
</Files>
Запрещен доступ к файлам с расширением inc, conf и cfg Запретить доступ с определенного IP-адреса Deny from 195. 135. 232. 70 Разрешить доступ только с определенного IP-адреса Order deny,allow
Deny from all
Allow from 195. 135. 232. 70
Директива Order позволяет задать порядок, в котором будут выполняться директивы. Сначала выполняется директива запрета доступа(директива Deny), а затем разрешается доступ то для IP-адреса 195. 135. 232. 70 (директива Allow). Если в первой строке поменять порядок следования директив на Order allow,deny, то доступ для IP-адреса 195. 135. 232. 70 не будет открыть, т. к. директива Deny, выполняемая последней, перекроет действие директивы Allow.
===================================================
Дмитрий Кравченко - руководитель проекта "Азбука интернета"
(http://www. articlesworld. ru/), автор ряда статей по раскрутке сайта.
===================================================
*Републикация cтатьи возможна при сохранении исходного текста и подписи в конце статьи.
автор статьи - Дмитрий Кравченко - руководитель проекта "Азбука интернета" (http://www. articlesworld. ru/), автор ряда статей по раскрутке сайта. *Републикация cтатьи возможна при сохранении исходного текста и подписи в конце статьи.
Автор статьи: неизвестный | Дата публикации: 15:52 10.06.2019 Effectivinfo.Ru
Наш портал является ресурсом, который включает в себя полный каталог информативных и занимательных статей. Абсолютно каждый посетитель найдет для себя что-нибудь нужное. Современный дизайн дает возможность вам моментально находить актуальную информацию. Самые разнообразные тематические статьи дают возможность вам совершенствоваться в той или иной сфере. Быть более начитанным и грамотным. Современный дизайн сайта позволяет просматривать статьи на всех существующих планшетах. Теперь отыскать актуальную информацию стало совершенно просто.
Мы подобрали для вас информативные и интересные статьи. У нас сайте вы найдете ответы на интересующие вас вопросы. Простая система поиска позволяет вам в кратчайшие сроки отыскать нужную информацию. Адаптированный дизайн позволяет вам просматривать информацию на любых гаджетах. Отныне, поиск требуемой информации будет занимать у вас секунды.