По сути, я пытаюсь ограничить индексирование каталогов аутентифицированными пользователями из файла 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, я в растерянности. Было бы здорово, если бы кто-нибудь знал, как это сделать.
Спасибо.
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, таким образом, это недопустимо.