例如,假设我有5个目录。我不想通过浏览器建立索引的5个中的3个,我只想通过密码访问的第4个,不需要锁定的第五个,可以通过浏览器访问。如何使用httd.conf文件实现此目的?
我知道我想要用密码保护的目录中需要.htaccess / .htpasswd文件,我需要从Options指令中删除Indexing,以使这3个目录无法访问。
但是我不知道如何在其他两个设置正确的情况下公开显示1目录。有人请帮忙!谢谢。
答案 0 :(得分:0)
在我看来,这很简单,但是由于您没有提供太多详细信息,因此我必须做出一些假设,并且我可能是错的。
DocumentRoot
下,而不是一个嵌套在另一个目录内。 AllowOverride
或Options
指令或VirtualHost
配置中均未更改。此外,您同时提到了主httpd.conf
和.htaccess
,所以我将只为您提供主httpd.conf
文件的配置。
# Don't AutoIndex dir1, dir2 or dir3
<DirectoryMatch "/path/document/root/dir(1|2|3)$">
Options -Indexes
</DirectoryMatch>
# Protect dir4
<Directory "/path/document/root/dir4">
AuthType basic
AuthName "private"
# Adjust for the location of your htpasswd. DONT put it inside your DocumentRoot
AuthUserFile /etc/httpd/example.htpasswd
Require valid-user
</Directory>
# This directive isn't necessary at all provided you didn't change defaults
<Directory "/path/document/root/dir5">
Options +Indexes
Require all granted
</Directory>