htaccess密码保护不同用户的文件

时间:2013-09-26 19:31:47

标签: apache .htaccess authentication .htpasswd

我有一个文件服务器,我使用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>

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

2 个答案:

答案 0 :(得分:5)

如果您有一个名为&#34; filesForAnyUser&#34;的文件夹。和一个只有admin文件的文件夹,你需要制作2个htaccess文件。一个在&#34; filesForAnyUser&#34;:

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

另一个目录中有一个:

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

答案 1 :(得分: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>中的文件用于当前目录和任何子目录。我不确定如何将其限制为仅当前目录。