4

我的网络服务器上有这个目录结构:

web
    privatedir1
    privatedir2
    publicdir
        file1
        file2
        file3

我想使用 .htaccess 文件设置以下功能:

  • 用户“管理员”(经过身份验证)可以无限制访问所有目录(包括目录索引)
  • 其他任何人都可以下载 file1、file2、file3 但看不到 publicdir 的列表(索引)

您能否描述如何使用 .htaccess 文件实现这一目标?我知道如何允许/禁止目录索引,但我不知道如何有条件地做到这一点(取决于用户是否经过身份验证)

非常感谢你。

4

2 回答 2

1

这是一个非常基本的示例,但您可以这样做。

<Directory /srv/dev/>
        AllowOverride All
        Options +Indexes

        AuthType Basic
        AuthUserFile /srv/.htpasswd
        Require valid-user
</Directory>

<Directory /srv/dev/apps/>
        <If "%{REQUEST_URI} != '/'">
        Require all granted
        </If>
</Directory>
于 2018-07-30T19:36:28.150 回答
-1

我认为您的答案可能在于此网址

htaccess 允许访问特定用户

“您需要使用 htpasswd 实用程序创建要允许的用户数据库/特定用户。从那里,在您要限制的目录中的 htaccess 文件中,使用:”

AuthUserFile /path/to/.htpasswd
AuthName "Authorization Form Title"
AuthType Basic

#Allow any valid user
require valid-user

#Allow only one user with specified username
require user username

“更多信息可以在大量在线参考资料中找到,这是最早出现的资料之一:http: //www.apacheweek.com/features/userauth

于 2015-03-13T21:00:12.377 回答