Я устанавливаю webdav на apache2.4, и мне нужно, чтобы мой верхний каталог / webdav
был свободно открыт, а подкаталог вроде / webdav / projects / secretproject
для защиты паролем. Также полезны любые предложения о том, как ограничить подкаталог.
Я только что протестировал это (apache2 2.4.18) и обнаружил, что базовая аутентификация работает, как только я изменяю Location
на Directory
вот так:
<Directory /var/webdav/projects/secretproject >
…
</Directory>
Я думаю, это потому, что директива Directory
для / var / webdav
переопределяет директиву Location
для проектов / secretproject, но я Я не уверен в этом.
Кроме того, у вас есть небольшая опечатка в этой конфигурации, она должна правильно читаться:
<Directory /var/webdav/ >
Options Indexes FollowSymLinks
Allow from all
</Directory>
Но поскольку ваш apache2 работает, я думаю, что это всего лишь ошибка копирования и вставки из-за того, что поместил его сюда на serverfault . Надеюсь, это поможет!
Как указано в предыдущих комментариях, реализация auth
внутри каталога без местоположения решила проблему
Alias /webdav /var/webdav/
Alias /secretproject /webdav/projects/secretproject/
<Directory /webdav/projects/secretproject >
AuthType Basic
AuthName "TEST - TEST"
AuthBasicProvider file
AuthUserFile "/etc/apache2/auth/test.passwd"
<RequireAll>
Require all granted
Require valid-user
</RequireAll>
</Directory>
<Directory /var/webdav/ >
DAV on
Options +Indexes
FollowSymLinks from all
<LimitExcept GET HEAD OPTIONS PROPFIND>
Deny from all
</LimitExcept>
Require all granted
</Directory>
Спасибо за помощь