Ограничить индекс каталогов для аутентифицированных пользователей

По сути, я пытаюсь ограничить индексирование каталогов аутентифицированными пользователями из файла htpasswd на моем сервере Apache. Вот что у меня есть на данный момент.

AuthUserFile C:\XXXXXXXXX\htpasswd
AuthGroupFile /dev/null
AuthName "Password Protected!"
AuthType Basic
<Limit DirectoryIndex>
require valid-user
</Limit>

Я подтвердил, что этот вид аутентификации работает для обычного доступа к каталогам или для файлов, если я заменю «DirectoryIndex» на «GET POST». Я попытался предположить, поместив здесь DirectoryIndex, но, похоже, это не сработало. Я погуглил эту проблему и рассмотрел ряд других вопросов здесь, о serverfault, я в растерянности. Было бы здорово, если бы кто-нибудь знал, как это сделать.

Спасибо.

0
задан 10 December 2019 в 04:09
1 ответ

DirectoryIndex (часть mod_dir) устанавливает файл для обслуживания, когда клиент запрашивает каталог. Так, для ограничения доступа к этому файл необходимо использовать <Files> (или <FilesMatch>) директива. (Вы не можете сослаться на любой файл (файлы) DirectoryIndex, директива относится к.)

, Например, если Ваш DirectoryIndex установлен на index.html, то:

<Files "index.html">
    AuthUserFile C:\XXXXXXXXX\htpasswd
    AuthGroupFile /dev/null
    AuthName "Password Protected!"
    AuthType Basic
    Require valid-user
</Files>

, Если у Вас есть несколько возможные DirectoryIndex документы затем, можно использовать <FilesMatch> контейнер вместо этого, который берет regex в качестве его аргумента. Например, если DirectoryIndex index.php index.html установлен затем:

<FilesMatch "^index\.(html|php)$">
    # etc.
</FilesMatch>
<час>

Или, "индексацией каталога", Вы обращаетесь к сгенерированным спискам каталога (mod_autoindex)? Но это имеет мало общего DirectoryIndex само, за исключением того, что (если включено) список каталогов только сгенерирован, когда DirectoryIndex документ не существует.

В этом случае, для защиты списка каталога только (т.е. пустого каталога) затем можно также использовать Files контейнер, но указать пустой файл. Например:

# Protect directory-listing only
<Files "">
    # etc.
</Files>
<час>
<Limit DirectoryIndex>

Limit директива ограничивает прилагаемые директивы установленным методом (методами) запроса HTTP (т.е. ДОБЕРИТЕСЬ, POST, и т.д.). DirectoryIndex директива Apache, не метод Запроса HTTP, таким образом, это недопустимо.

0
ответ дан 30 December 2019 в 00:12

Теги

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