Apache2
限制對 apahe 中子目錄的訪問,使父目錄保持打開狀態
我在 apache2.4 上設置了一個 webdav,我需要我的頂級目錄
/webdav
可以自由打開,並且需要一個子目錄,比如/webdav/projects/secretproject
用密碼保護。我的現在
dav.conf
看起來像這樣Alias /webdav /var/webdav/ Alias /secretproject /webdav/projects/secretproject/ <Location /webdav/projects/secretproject > AuthType Basic AuthName "TEST - TEST" AuthBasicProvider file AuthUserFile "/etc/apache2/auth/test.passwd" <RequireAll> Require all granted Require valid-user </RequireAll> </Location> <Location /webdav > DAV on Options +Indexes <LimitExcept GET HEAD OPTIONS PROPFIND> Deny from all </LimitExcept> Require all granted </Location> <Directory /var/webdav/ > Options Indexes FollowSymLinksAllow from all </Directory>
我不明白權限從最通用
/
的/webdav
到最具體的合併/webdav/projects/secretproject
根據這個問題
https://unix.stackexchange.com/questions/404034/restrict-access-to-subdirectory-in-apache
需要敲擊我的權限
<RequireAll>
以強制Require valid-user
實施,因此鎖定子目錄(否則Require all granted
將推翻任何限制)不幸的是,子目錄不受此配置的限制,我想了解原因。關於如何限制子目錄的任何建議也很有幫助
我剛剛對此進行了測試(apache2 2.4.18),發現只要我更改
Location
為Directory
這樣,基本身份驗證就可以工作:<Directory /var/webdav/projects/secretproject > … </Directory>
我認為這是因為
Directory
for 的指令/var/webdav
覆蓋了Location
projects/secretproject 的指令,但我對此不確定。此外,您在該配置中有一點錯字,它應該正確讀取:
<Directory /var/webdav/ > Options Indexes FollowSymLinks Allow from all </Directory>
但是由於您的 apache2 正在執行,我認為這只是將其放在 serverfault 上的複制粘貼錯誤。希望這可以幫助!