如何使用.htaccess锁定一个目录但使用密码保护另一个目录?

时间:2018-10-10 06:11:37

标签: .htaccess

例如,假设我有5个目录。我不想通过浏览器建立索引的5个中的3个,我只想通过密码访问的第4个,不需要锁定的第五个,可以通过浏览器访问。如何使用httd.conf文件实现此目的?

我知道我想要用密码保护的目录中需要.htaccess / .htpasswd文件,我需要从Options指令中删除Indexing,以使这3个目录无法访问。

但是我不知道如何在其他两个设置正确的情况下公开显示1目录。有人请帮忙!谢谢。

1 个答案:

答案 0 :(得分:0)

在我看来,这很简单,但是由于您没有提供太多详细信息,因此我必须做出一些假设,并且我可能是错的。

  • 我假设您的所有目录都直接位于您的DocumentRoot下,而不是一个嵌套在另一个目录内。
  • 您具有默认配置,主服务器中的AllowOverrideOptions指令或VirtualHost配置中均未更改。
  • Apache 2.4版

此外,您同时提到了主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>