我有一个文件服务器,我使用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>
我确定我做错了什么,但我找不到任何好的文件。
答案 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>
中的文件用于当前目录和任何子目录。我不确定如何将其限制为仅当前目录。