我有这样的目录结构:
- www
- folder1
- folder2
- folder21
- folder22
- folder23
我允许访问所有图像文件
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order Deny,Allow
Allow from all
</FilesMatch>
我允许访问特定文件夹中的所有文件
<FilesMatch /folder2/folder22/.*>
Order Deny,Allow
Allow from all
</FilesMatch>
我允许robots.txt
访问所有文件
<FilesMatch (robots\.txt)$>
Order Deny,Allow
Allow from all
</FilesMatch>
最后我添加了密码限制
AuthType Basic
AuthName "Personal use"
AuthUserFile /full/path/to/.htpasswd
Require valid-user
但是当我尝试通过浏览器访问任何图像文件时,系统都会提示输入密码。有人能解释一下如何修复它以及可能是什么问题吗?谢谢。
答案1
Order Deny,Allow
表示deny
先处理规则,再处理规则allow
。因此,您将收到密码提示。
对于您想要允许访问的任何文件夹和文件类型,只需将以下配置放入您的.htaccess
:
<FilesMatch "\.(gif|jpe?g|png)$">
Order Allow,Deny
Allow from all
Satisfy Any
</FilesMatch>
答案2
您只需satisfy Any
向每个FilesMatch
块添加一个指令。
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order Deny,Allow
Allow from all
Satisfy Any
</FilesMatch>