如何使用 htaccess 文件锁定文件夹?

How do I lock a folder with htaccess file?

我正在尝试使用 htaccess 文件锁定我网站上的文件夹 我在根目录中创建了一个 htaccess 文件,并在我要锁定的文件夹中创建了一个 htpasswd 文件 但问题是它不起作用,我被禁止进入整个站点,直到我从 .htaccess 文件中删除“需要有效用户”以允许我进入该站点。

htaccess 文件

ErrorDocument 404 /404.html
#Protect Directory
AuthName "Dialog prompt"
AuthType Basic
AuthUserFile /fares/.htpasswd
Require valid-user

htpasswd 文件

fares:djefaflia

它在本地服务器或主机上不起作用

AuthUserFile /fares/.htpasswd

提供给 AuthUserFile 的文件路径应该是一个绝对文件系统路径,而不是相对于根目录的 URL-路径(即相对于文档根目录),这看起来像.

“绝对文件系统路径”是服务器上 .htpasswd 文件的完整文件路径。例如,如果您的文档根目录(您的 HTML 文件所在的位置)的服务器路径是 /home/user/public_html 并且您想要保护文档根目录中的目录 /fares 而您是将 .htpasswd 文件存储在该目录中(尽管不推荐 - 见下文)然后 AuthUserFile 指令应该如下所示:

AuthUserFile /home/user/public_html/fares/.htpasswd

但是,您应该避免将密码文件存储在您正在保护的同一目录中(出于安全原因)。理想情况下,此文件将存储在文档根目录之外(即 public HTML space 之外)。例如,您可以在文档根目录上方的 htpasswds 目录中镜像文件结构,在该目录中存储系统上所有相关的 .htpasswd 文件:

AuthUserFile /home/user/htpasswds/fares/.htpasswd
fares:djefaflia

如所写,这“看起来”不正确(除非您有意尝试存储纯文本密码——这在 Linux 上不起作用)。您如何生成 password 文件?您应该使用 htpasswd.exe(Apache 附带)之类的工具,或生成密码的 散列 的类似工具。例如,它应该更像这样:

fares:$apr1Szn.sq3E6ZMJLBAZKWX.wmGRISu1