【问题标题】:How do I lock a folder with htaccess file?如何使用 htaccess 文件锁定文件夹?
【发布时间】:2021-09-08 07:43:15
【问题描述】:

我正在尝试使用 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】:
    AuthUserFile /fares/.htpasswd
    

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

    “绝对文件系统路径”是服务器上.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 附带)这样的工具,或者类似的工具来生成密码的散列。例如,它应该看起来更像这样:

    fares:$apr1$6Szn.sq3$7E6ZMJLBAZKWX.wmGRISu1
    

    【讨论】:

    • 向我解释更多,因为我完全明白我现在应该做什么
    • @Fares 您在为哪一点苦苦挣扎?我已经详细介绍了它。
    • here : 提供给 AuthUserFile 的文件路径应该是绝对文件系统路径,而不是看起来像这样的相对于根目录的 URL 路径(即相对于文档根目录)。跨度>
    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 2014-07-23
    • 2013-10-05
    • 2021-08-03
    • 2019-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多