对目录进行密码保护,但不保护该目录的文件?

对目录进行密码保护,但不保护该目录的文件?

我只是想知道是否可以使用 .htaccess 和 .htpasswd 文件保护具有用户名/密码组合的目录,但不保护其中的文件。即,人们可以将该目录中的图像链接给朋友,但如果没有用户名/密码,则不允许浏览目录本身。提前感谢大家。

答案1

尝试一下.htaccess

Require valid-user

<Files ?*>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>

这里Require valid-user要求任何已知的登录名。然后,您修改此限制,使其适用于名称中至少有一个字符的文件(这是?*<Files>部分的 glob 模式将匹配的内容),这实际上意味着所附规则适用于文件,但不适用于目录。

在修改的文件规则中,关键是Satisfy any。它允许授权通过任何一个证书或者IP 地址。然后您允许任何要传递的 IP 地址,因此请求总是已授權。

因此现在浏览此目录或其任何子目录都需要登录,但直接从中检索文件则不需要。

这正是您想要的。

答案2

是的,您可以通过名称或模式保护文件和目录。您应该已经使用它来限制对 .ht* 文件的访问。检查您的 apache 配置。所需的文件模式可能是“/$”。

答案3

使用LocationMatch将身份验证内容限制在目录索引内。

答案4

如果您希望目录列表仅对授权用户可见,但允许任何人下载文件(以便您可以向人们发送链接),则需要某种类型的脚本(PHP、ASP 等),该脚本会要求用户输入密码,如果输入正确,则会显示目录的内容。您可以将此脚本放在目录中并将其命名为 index.php,以便它得到服务,而不是由 apache 生成目录索引。

相关内容