密码保护目录,但不是该目录的文件?


8

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

Answers:


9

试试这个.htaccess

Require valid-user

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

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

在修改的文件规则中,关键是Satisfy any。它允许由授权满意或者凭证 IP地址。然后您允许任何 IP地址通过,因此请求始终被授权。

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

这是你想要的。


0

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


0

用于LocationMatch将auth stuff限制为目录索引。


<LocationMatch“/ pictures”> AuthUserFile /home/asdasd/public_html/user5678/pictures/.htpasswd AuthGroupFile / dev / null AuthName“Restricted Directory”AuthType Basic </ LocationMatch> <Limit GET POST> require valid-user </ Limit>这是我当前的.htaccess文件,位于/ pictures中。有什么我做错了吗?这似乎返回500内部服务器错误。

a)阅读LocationMatch,它需要一个正则表达式。b)你需要把require valid-user内部放在LocationMatch块内(为什么Limit声明呢?)
玛丽安2010年

0

您只想关闭显示Apache文件夹的索引。把它放在.htaccess中:

Options -Indexes

这样,当用户访问时http://www.url.com/folder/,他们会收到目录列表拒绝错误。但是当他们访问时http://www.url.com/folder/file.jpg他们可以看到该文件。


1
这不是被问到,这个禁用列表,而不是密码保护他们
Krzysztof Bociurko

-1

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


-1

是。添加一个index.html文件,列出该文件夹的内容,并使用.htaccess限制对该文件的访问。如果您希望索引是动态的,则需要使用某种脚本(或服务器端包含)来生成索引。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.