我有以下目录层次结构
-root_folder
.htaccess
-sub_folder
.htaccess
sub_folder中的.htaccess文件的内容:
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/test/passwd.dav
Require user test
root_folder
包含以下.htaccess
Satisfy any
Order deny,allow
Deny from all
Allow from env=ALLOWED
SetEnvIfNoCase Request_URI "^/+webdav/root_folder/?$" ALLOWED
请注意,我正在使用WebDav
。
它在/etc/apache2/conf.d/webdav
中设置。该文件包含以下内容:
Alias /webdav /home/user/projects/test/public
<Location /webdav/>
Order Allow,Deny
Allow from #list of ips here
DAV On
PassengerEnabled off
LimitXMLRequestBody 0
Options Indexes FollowSymLinks
</Location>
问题是当我尝试使用浏览器访问localhost/webdav/root_folder/
文件夹时,不会显示sub_folder
。
但是当我删除Require user some_user
指令时,列表中会显示sub_folder
。如果我在localhost/webdav/root_folder/sub_folder/
指令启用时尝试输入Require user
,我会被要求输入登录名和密码,如果输入正确的凭据,一切正常。
是否可以列出目录中的所有内容,同时在sub_folders中的.htaccess文件中使用require user
指令来控制对它们的访问?
答案 0 :(得分:2)
在你的root_folder中(我相信这是你的$DOCUMENT_ROOT
)创建.htaccess文件,其中包含以下内容:
SetEnvIfNoCase Request_URI "^/*$" ALLOWED
Satisfy any
Order deny,allow
Deny from all
Allow from env=ALLOWED
如果root_folder
不是$ DOCUMENT_ROOT,请使用:
SetEnvIfNoCase Request_URI "^/+root_folder/?$" ALLOWED
作为第一行。