Различные методы запрета доступа в httaccess

Я хочу запретить доступ ко всем файлам и подкаталогам в данной папке через .htaccess. Я нашел два метода:

deny from all
<Files "*">
    Order Deny,Allow
    Deny from all
</Files> 

Есть ли разница между этими двумя?

1
задан 1 November 2020 в 23:02
1 ответ

Как отмечалось в комментариях, директивы Deny и Order ранее устарели в Apache 2.4 (которую, я полагаю, вы используете - увидеть ниже). И предназначены только для обратной совместимости (mod_access_compat). Их следует использовать только в Apache 2.2 и более ранних версиях.

запретить все

Да, это «запретит» любой доступ к текущему каталогу, файлам и подкаталогам. Однако без явного указания Порядок, в котором обрабатываются директивы Запретить и Разрешить, то, как он взаимодействует со связанными директивами, неясно.

Разрешить директивы в подкаталоге .htaccess должны переопределить это.

<Файлы "*">
Порядок Запретить, Разрешить
Запретить от всех

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

* — это просто подстановочный знак, который соответствует всем файлам (и каталогам).

На Apache 2.4 вместо этого следует использовать директиву Require (mod_authz_core):

Require all denied

То же самое относительно контейнера применимо и здесь.

1
ответ дан 2 November 2020 в 20:49

Теги

Похожие вопросы