在 Apache 中,如何设置密码保护?

在 Apache 中,如何设置密码保护?

我正在尝试使用 Apache 设置服务器。在 conf 文件中,我插入了以下代码:

<Directory />
    Options FollowSymLinks
    AllowOverride AuthConfig
    AuthType Basic
    AuthName "Restricted Files"
    AuthBasicProvider file
    AuthUserFile C:\...\serverpass.txt
    Require user Admin
</Directory>

为了尝试让 Apache 要求输入密码。我使用 htpasswd -c 创建了用户名和密码。但是当我进入 localhost 时,它没有提示我输入用户名和密码?

答案1

/在 Windows 中不是路径,因此<Directory />不会执行任何操作。

考虑使用<Location /><Directory c:/path/to/webroot/>

答案2

完成这些更改后,您是否重新启动了 apache 网络服务器?

另外,您是否检查过 httpd.conf 及其所有包含文件中是否存在冲突的指令。请记住,遇到的最后一个覆盖指令(以及更具体的指令)将获胜并被使用。

答案3

尝试使用“/”作为路径分隔符,而不是 Windows 典型的“\”。

因为Apache 文档中说

接受文件名作为参数的指令必须使用 Windows 文件名,而不是 Unix 文件名。但是,由于 Apache 可能会将反斜杠解释为“转义字符”序列,因此您应该在路径名中始终使用正斜杠,而不是反斜杠。可以使用驱动器字母;如果省略,则 SystemRoot 指令(或 -d 命令行选项)的驱动器将成为默认驱动器。

答案4

<Directory />

此处的 / 应替换为您要查找身份验证的特定目录。更改它并重新启动 Web 服务器。

此后它可能会起作用。

相关内容