Поговорим об изменениях в конфигурационных директивах веб сервера Apache версии 2.4. Дело в том, что они существенно изменились и настройка доступа к сайтам в Apache 2.4 производится иначе чем это это было в версии 2.2.
Пожалуй целесообразнее было бы назвать пост, что то вроде изменения контроля доступа в Апач версии 2.4, ну да ладно. Так вот о чём я. Всё дело в том, что директивы доступа немного изменились и если вы будите использовать старый синтаксис определения директорий, то рискуете нарваться на ошибку 403 Forbidden (Доступ Запрещён или access denied). Казалось бы вы всё настроили правильно и всё равно получаете сообщение Forbidden при попытке получить доступ к сайту. В чём же дело? Именно в различиях версий Apache.
В общем не буду долго разглагольствовать, просто приведу примеры кодов с переведёнными разъяснениями с официального сайта Apache и всё сразу станет ясно.
Контроль доступа
В версии 2.2 контроль доступа базировался на клиентском хост нейме, IP адресе, и других характеристиках клиентских запросов. Так же использовались директивы Order
, Allow
, Deny
и Satisfy
.
В 2.4, такой контроль доступа осуществляется таким же образом, как и другие проверки авторизации с использованием нового mod_authz_host модуля. Старые идиомы управления доступом должны быть заменены новыми механизмами аутентификации, хотя для совместимости со старыми конфигурации, новый модуль mod_access_compat предоставляется так же в комплекте.
Here are some examples of old and new ways to do the same access control.
Далее приводятся примеры старого и нового «контроля доступа».
В этом примере, все запросы запрещены.
2.2 configuration:
Order deny,allow Deny from all
2.4 configuration:
Require all denied
В этом примере все запросы разрешены.
2.2 configuration:
Order allow,deny Allow from all
2.4 configuration:
Require all granted
Следующий пример разрешает доступ с домена example.loc, все остальные хосты запрещены
2.2 configuration:
Order Deny,Allow Deny from all Allow from example.loc
2.4 configuration:
Require host example.loc
На этом собственно и вся разница в контроле доступа между версиями Apache 2.2 и 2.4.