我有/home/sammy/public_html/cache/.htaccess
Options +Indexes
<Files *>
AuthType Basic
AuthName "Authentication Required"
AuthUserFile /home/sammy/public_html/cache/.htpasswd
Require valid-user
</Files>
但我只希望目录列表受密码保护 - 而不是文件本身。
问题是,当我去时,example.test/cache/somefile.pdf
它会提示输入用户名和密码。
<If>
如果您使用的是 Apache 2.4(我希望您使用的是),那么您可以在仅针对目录的构造中使用 Apache 表达式。例如:
这将使用正则表达式
/$
(使用替代正则表达式语法m#<regex>#
)来定位以斜杠结尾的任何 URL。换句话说,就是目录本身,因为这应该是唯一以斜杠结尾的 URL。注意:不建议将密码文件存储在公共 HTML 空间中,更不用说存储在用于保护的目录中。
或者
<FilesMatch "">
,(在 Apache 2.2 上)您还可以在(或)容器中使用正则表达式/负向预测,<Files ~ "">
该容器针对不是任何长度的文件名的所有内容(换句话说,目录)。例如: