Apache htaccess中的Require指令阻止显示目录
我有以下目录层次结构Apache htaccess中的Require指令阻止显示目录,apache,.htaccess,apache2,webserver,authorization,Apache,.htaccess,Apache2,Webserver,Authorization,我有以下目录层次结构 -root_folder .htaccess -sub_folder .htaccess sub_文件夹中.htaccess文件的内容: AuthType Basic AuthName "webdav" AuthUserFile /var/www/test/passwd.dav Require user test root\u文件夹包含以下内容.htaccess Satisfy any Order deny,allow Deny from al
-root_folder
.htaccess
-sub_folder
.htaccess
sub_文件夹中.htaccess文件的内容:
AuthType Basic
AuthName "webdav"
AuthUserFile /var/www/test/passwd.dav
Require user test
root\u文件夹
包含以下内容.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>
Alias/webdav/home/user/projects/test/public
命令允许,拒绝
允许来自此处的IP列表
达文
乘客逃走了
LimitXMLRequestBody 0
选项索引跟随符号链接
问题是,当我尝试使用浏览器访问localhost/webdav/root\u folder/
文件夹时,不会显示sub\u文件夹
。
但是,当我删除Require user some_user
指令时,列表中会显示子文件夹
。如果我尝试在启用“需要用户”指令时输入localhost/webdav/root\u folder/sub\u folder/
,系统会要求我输入登录名和密码,如果输入正确的凭据,一切正常
是否可以列出目录中的所有内容,同时在子文件夹中的.htaccess文件中使用要求用户
指令来控制对它们的访问?在您的根文件夹中(我相信这是您的$DOCUMENT\u root
)创建包含以下内容的.htaccess文件:
SetEnvIfNoCase Request_URI "^/*$" ALLOWED
Satisfy any
Order deny,allow
Deny from all
Allow from env=ALLOWED
如果root\u文件夹
不是$DOCUMENT\u root,则使用:
SetEnvIfNoCase Request_URI "^/+root_folder/?$" ALLOWED
作为第一行。谢谢您的回复。现在显示了
子文件夹
,但是当我点击它时,我没有被要求输入我的登录名和密码。我的目标是在不隐藏的情况下控制对不同目录的访问。在我的设置中,当我从列表中单击sub_文件夹时,它会要求输入登录名/密码。你能从根文件夹和子文件夹发布你的.htaccess吗?在我的Apache安装中,我尝试了所有方法,但它总是列出根文件夹中的子文件夹,并在单击子文件夹时询问登录名/密码。我唯一没有的就是加载了mod_dev和DAV。我想,满足任何
指令都会破坏我的方案,因为我在webdav
配置文件/etc/apache2/conf.d
中有Allow from#一长串IP
。此ip列表包含127.0.0.1
,因此如果我尝试访问一些sub_文件夹
Apache的配置解析器会找到此指令并允许访问此sub_文件夹
。事实上,如果满足allow
指令中的任何条件,它将允许访问。使用满足所有要求
仍会阻止显示目录。如果我使用满足任何
并从#ip列表中删除允许
来自webdav
文件,则一切都如您所述。哦,我知道我怀疑DAV的内容。但很高兴知道你找到了根本原因。我怀疑,如果您从一个不在webdav允许列表中的IP访问您的web服务器,它的行为将与我描述的完全相同。