如何锁定带有 htaccess 文件的文件夹?

问题描述 投票:0回答:1

我正在尝试使用 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

它不适用于本地服务器或托管

apache .htaccess web .htpasswd
1个回答
2
投票
AuthUserFile /fares/.htpasswd

提供给

AuthUserFile
的文件路径应该是绝对文件系统路径,而不是相对于根的URL路径(即它不应该相对于文档根),这就是它的样子。 (令人困惑的是,相对路径是相对于
ServerRoot
解析的,而不是相对于文件系统的根目录。)

“绝对文件系统路径”是服务器上

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

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

但是,您应该避免将密码文件存储在您正在保护的同一目录中(出于安全原因)。理想情况下,该文件应存储在文档根目录之外(即公共 HTML 空间之外)。例如,您可以将文件结构镜像到文档根目录上方的

htpasswds
目录中,其中存储系统上所有相关的
.htpasswd
文件:

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

正如所写,这“看起来”不正确(除非您故意尝试存储纯文本密码 - 这在 Linux 上不起作用)。您如何生成 password 文件?您应该使用类似

htpasswd.exe
(Apache 附带)的工具,或类似的工具来生成密码的 hash。例如,它应该看起来更像这样:

fares:$apr1$6Szn.sq3$7E6ZMJLBAZKWX.wmGRISu1
© www.soinside.com 2019 - 2024. All rights reserved.