5

我有一个文件服务器,我使用 mod_autoindex 来服务器文件。我在 htaccess 中有一个用户名和密码,所以只有某些人可以访问这些文件。我已向 htpasswd 添加了另一个用户,但我只希望该用户访问某些文件/文件夹。

这是我现在的 htaccess 文件:

AuthType Basic
AuthName "restricted"
AuthUserFile E:\\path\\to\\.htpasswd

<Files "filesForAnyUser\\*">
  Require valid-user
</Files>

<Files "*">
Require user admin
</Files>

我确定我做错了什么,但我找不到任何好的文档。

4

2 回答 2

5

如果您有一个名为“filesForAnyUser”的文件夹和一个只有管理员文件的文件夹,则需要制作 2 个 htaccess 文件。“filesForAnyUser”中的一个:

AuthType Basic
AuthName "restricted"
AuthUserFile E:\\path\\to\\.htpasswd
Require valid-user

另一个目录中的一个:

AuthType Basic
AuthName "restricted"
AuthUserFile E:\\path\\to\\.htpasswd
Require user admin
于 2013-09-26T20:30:55.930 回答
2

所以这是我对其他人的最终解决方案。

将以下内容放在根文件夹中:

AuthType Basic
AuthName "restricted"
AuthUserFile E:\\path\\to\\.htpasswd
Require user admin

将以下内容放在 admin 和 user1 可以访问该文件的任何文件夹中:

AuthType Basic
AuthName "restricted"
AuthUserFile E:\\path\\to\\.htpasswd
Require user admin user1 #users separated by space or "Require valid-user" if all users

如果您想允许 user1 仅访问某些文件,您可以使用<FilesMatch>

AuthType Basic
AuthName "restricted"
AuthUserFile E:\\path\\to\\.htpasswd
Require user admin
<FilesMatch "^(doc1.pdf|doc2.txt|doc3.docx)$">
  Require user admin user1 #or valid-user
</FilesMatch>

这使管理员可以访问该文件夹中的所有文件,但 user1 只能访问中列出的文件<FilesMatch>

注意:其中的文件<FilesMatch>是针对当前目录和任何子目录的。我不确定如何将其限制为仅当前目录。

于 2013-09-28T20:37:11.463 回答