Конфигурирование сайта с помощью файла .htaccess

Web - сервер Apache - это мощный и многофункциональный программный продукт с разнообразными возможностями. В данной статье будут расмотрены приёмы конфигурирования Apache, наиболее часто встречающиеся при разработке Web - сайтов. Как известно, все настройки сервера Apache находятся в файлe httpd. conf, доступ к которому имеется не всегда. Например, если используется виртуальный сервер на хостинге, когда один сервер Apache обслуживает сотни сайтов, то, естественно, нельзя позволить владельцу одного сайта менять конфигурацию сервера, которая отразится на всех остальных сайтах. Тем не менее Web - сервер Apache допускает конфигурирование на уровне отдельных каталогов при помощи файлов . htaccess. Именно на работу с этими файлами, как единственными конфигурационными файлами, которые доступны большинству Web - разработчиков, и будет сделан основной упор в этой статье. Файл . htaccess (с точкой в начале имени) – это конфигурационный файл, который даёт возможность настраивать работу сервера на уровне отдельных каталогов: устанавливать права доступа к файлам в каталогах, менять названия индексных файлов, самостоятельно обрабатывать коды ответов протокола HTTP, модифицировать адреса запрошенных страниц. Примечание
Файл . htaccess может быть размещен в любом каталоге. Директивы этого файла действуют на все файлы в текущем каталоге и во всех его подкаталогах (если эти директивы не переопределены директивами файлов . htaccess во вложенных каталогах). Изменения, вносимые в файлы . 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 Замечание
Название конфигурационного файла можно изменить, и например, назвать его не . htaccess, a access. conf. За название этого файла отвечает директива AccessFileName в файле httpd. conf. Изменение названия конфигурационного файла . htaccess не рекомендуется, т. к. это может усложнить дальнейшую поддержку сервера. Синтаксис . htaccess Перед тем, как будут рассмотрены примеры, остановимся на синтаксисе директив в файлах . htaccess. Пути к файлам и каталогам должны указываться от корня сервера, например, /pub/articles/masters/php/ При указании абсолютных url обязательно должны быть зааданы протоколы, например:
Redirect / В файлах . htaccess недопустимы пробелы в указаниях путей к файлам и в названиях самих файлов, т. к. это приводит к генерации кода ответа 500 - ошибка конфигурации сервера: "Internal Server Error". Примеры использования . htaccess Индексные страницы: Могут возникнуть ситуации, когда необходимо изменить состав индексных файлов, например, если нужна индексная страница index. php, а в основном конфигурационном файле httpd. conf она не прописана. Эту задачу можно решить при помощи файла . htaccess, в котором необходимо создать директиву DirectoryIndex, где будут перечислены имена индексных страниц: 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 следует указать код ответа и страницу, на которую необходимо перенаправить посетителя при возникновении данного кода ответа. 401 ошибка — Запрос требует аутентификации пользователя (Unautorized). 403 ошибка — Доступ к запрашиваемому ресурсу запрещён (Forbidden). 404 ошибка — Запрашиваемый документ на сервере отсутствует (Not Found). 500 ошибка — Ошибка конфигурации сервера или внешней программы (Internal Server Error). Выполнять код PHP в файлах HTML Обычно PHP-код выполняется в файлах с расширениями php. Иногда возникают ситуации, когда необходимо выполнять PHP-код в файлах с другим расширением. В этом случае можно дать указание Web-серверу выполнять PHP-код не только в файлах с расширением php, но и в файлах с расширением html. 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 может вызвать неожиданные проблемы, например, отображение несуществующих страниц сайта. Допустим, на сайте существует страница с адресом, и если посетители обратятся к несуществующему каталогу, то включённая опция MultiViews вместо этого каталога подставит файл down. php. Однако подстановка будет выполнена не полностью - пути к изображениям, таблицам стилей и т. п. будут подставлены неверно. То есть страница будет отображена с искажениями. Для подавления такого поведения Apache опцию MultiViews следует отключить. Options -MultiViews Запрет доступа к файлам Для того чтобы посетители не могли получить доступ к служебным файлам из окна браузера, можно запретить доступ к таким файлам. Для этого используется директива запрета Deny и разрешения доступа Allow. Примечание
Использование директив Deny и Allow управляет только доступом к файлам из браузера, либо из другой программы-клиента. Подобные запреты не распространяются на скрипты сервера. Запрет доступа к файлам из браузера Deny from all При использовании такой директивы будет запрещён доступ из браузера ко всем файлам и каталогам текущего каталога. Запрет доступа к определенному файлу
Deny from all
Здесь запрещен доступ только к файлам с именем config. php. Запрет доступа к файлам расширения inc
Deny from all
* - любая последовательность символов, исключая символ слеша (/). Запретить доступа к файлам с несколькими типами расширений
Deny from all
Запрещен доступ к файлам с расширением 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. Примечание
Следует отметить, что разрешение доступа с определённого IP-адреса иногда может не сработать. Например, в том случае, если на хостинге установлен обратный кэширующий proxy-сервер. Если директивы разрешения доступа не работают, то вам нужно обратиться по этому вопросу в службу технической поддержки хостинга. Перенаправление на другой адрес Часто встречаются задачи, когда все запросы к определённому каталогу или странице нужно перенаправить (redirect) на другой адрес. Это можно сделать с помощью директив Redirect и RedirectMatch. Они сообщают, что ресурс по запрошенному url отсутствует, и указывают адрес, по которому следует перейти. Директивы Redirect посылают браузеру соответствующий заголовок, и уже браузер осуществляет перенаправление. Глобальное перенаправление на новый адрес Redirect / Перенаправление при обращении к определённому файлу Redirect /books/index. php Перенаправление при обращении к любым страницам каталога RedirectMatch /books/. * Перенаправление при обращении к любым страницам сайта RedirectMatch /. * ===================================================
Дмитрий Кравченко - руководитель проекта "Азбука интернета"
( автор ряда статей по раскрутке сайта.
=================================================== *Републикация cтатьи возможна при сохранении исходного текста и подписи в конце статьи.

Автор статьи: неизвестный | Дата публикации: 22:17 24.03.2017 Baileys-pit.Ru




Отзывы и комментарии
Ваше имя (псевдоним):
Проверка на спам:

Введите символы с картинки:



Ремонт коттеджей и квартир

Ремонт коттеджей и квартир


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


Проблемы в электрических сетях. Примеры защиты оборудования.

Проблемы в электрических сетях. Примеры защит...


В последнее время, в связи со значительным увеличением количества различных электротехнических устройств, их нагрузочных мощностей, значительно увеличилось и энергопотребление. В большинстве случа...


ILES - иностранный язык онлайн.

ILES - иностранный язык онлайн.


Когда вы покупаете в магазине хлеб, то не предполагаете вместо него получить тесто или муку.  Приобретая дорогую иномарку, вы и представить не можете, что вместо «Мерседеса» вам всучат допотопный...


Какими бывают пленки для ламинирования

Какими бывают пленки для ламинирования


Ламинирование - процесс припрессовки специальной пленки (бывает матовая, глянцевая; различается по толщине) на печатный лист для придания ему блеска, жесткости, для создания более надежной защиты от в...


О чём шутят музыканты?

О чём шутят музыканты?


Музыкальное классическое искусство считается делом серьёзным, а игра на музыкальных инструментах только для непосвящённых остаётся всего лишь игрой. В действительности… В действительности, в м...


Легенды о ДВП и Оргалите, что это за пиломатериал?

Легенды о ДВП и Оргалите, что это за пиломате...


ДВП – Древесно-Волокнистая Плита; но есть и второе название – Оргалит. Многие думают, что ДВП и Оргалит абсолютно разные вещи, но на самом деле это не так. Даже однажды мною было услышано, что ДВП и М...


Стоит прочесть

Современные подходы к коррекции формы носа без опе

Множество людей желают изменить свою внешность и для этого прибегают к услугам хирургов. Наиболее популярной операцией является ринопластика. Но лечь под нож врача способен не всякий человек. В соврем...

Нет человека, который был бы как остров. Или?..

«Нет человека, который был бы как Остров, сам по себе. Каждый человек есть часть Материка, часть Суши; и если Волной снесет в море береговой Утес, меньше станет Европа, а также, если смоет ...

Что найдем и что потеряем в 2011 году?

Что-то не слышно в последнее время про бывшего московского мэра Лужкова. Еще пару месяцев назад был одной из самых значимых фигур в медиа-пространстве и вот исчез. И супруга его тоже как-то пропала. А...

Индукционный нагреватель ТВЧ

Существует два вида индукционных нагревателей – ламповые и тиристорные. Тиристорные установки имеют следующие преимущества перед ламповыми: имеют более высокий КПД; ...

Наука ли математика?

Математика — не наука. Это язык науки. Сошлюсь только на одно высказывание, хотя их можно привести множество: Нильс Бор говорил, что математика — это нечто значительно большее, ч...

Как выбрать игрушку?

Критерии выбора игрушек: 1. Возраст Первый и самый важный критерий при выборе игрушки, как впрочем и любого другого товара для ребенка ВОЗРАСТ! Игрушки рассчитанные на разные возрастные группы отличаю...

Браузерная онлайн игра, от которой не возможно ото

Лига Героев – браузерная многопользовательская ролевая онлайн игра, абсолютно бесплатная и открытая для всех. Это игра, которая объединяет людей, ищущих сказочных приключений. Это игра, в которой каж...

Что мы знаем о заговорах в Папском дворце в Ватика

5 сентября 1978 года, ровно 30 лет назад, в Ватикане недавно избранный Римский Папа Иоанн Павел I устроил аудиенцию в честь этого торжественного события. В папское государство съехались представи...

Знакомства в Интернете

Интернет дает своим посетителям массу уникальных возможностей, среди которых ведущее место занимают знакомства. Знакомства могут быть как делового, так и личного характера; для общения на увлекательны...

Как поймать кота-ворюгу?

Летом очень многие дачники заводят себе кошечек и котиков — домашних «любимцев», чтобы дети поиграли, да и самим приятно. Кошки вырастают и отъедаются за лето, к осени превращая...

О портале:

Наш портал является ресурсом, который включает в себя широкий каталог информативных и интересных статей. Каждый гость отыщет для себя что-нибудь полезное. Современный дизайн позволяет вам моментально находить нужную информацию. Самые разнообразные тематические статьи дают возможность вам совершенствоваться в той или иной сфере. Быть более начитанным и грамотным. Современный дизайн сайта позволяет просматривать статьи на всех существующих планшетах. Теперь найти требуемую информацию стало совершенно легко.

Мы подобрали для вас полезные и интересные статьи. У нас сайте вы найдете ответы на необходимые для вас вопросы. Упрощенная система поиска позволяет вам мгновенно отыскать нужную информацию. Адаптированный дизайн позволяет вам просматривать информацию на любых гаджетах. Теперь, поиск нужной информации будет занимать у вас считанные секунды.