我正在尝试使用 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 服务器。
此后它可能会起作用。