Ubuntu VM 中 Apache Web 服务器上的 .htaccess 问题

Ubuntu VM 中 Apache Web 服务器上的 .htaccess 问题

我刚刚在 VMWare Workstation 上的 Ubuntu 11.04 上安装了 Apache Web Server。我创建了一个基本的 HTML 页面,将其命名为 index.html 并将其放在 /var/www 目录(文档根目录)中。

我能够从我的主机操作系统(Windows 7)访问该网页,方法是将浏览器指向:

http://192.168.2.2/index.html

其中,192.168.2.2 是 Ubuntu VM 的 IP 地址。

接下来,为了测试 .htaccess 文件的各种配置,我在 /var/www 中创建了一个名为 members 的新目录。

在这个目录中,我创建并放置了一个具有以下配置的.htaccess 文件:

AuthUserFile /www/Neon/auth/.htpasswd
AuthName "neon's home"
AuthType Basic
require valid-user
IndexIgnore */*

我创建了一个目录路径,如 /var/www/Neon/auth/

然后在其中放置一个 .htpasswd 文件。

将用户名和哈希值放入 .htpasswd 文件中:我创建了一个用户名“neon”,并计算了密码的 DES 哈希值,然后将其放入 .htpasswd 文件中,格式如下:

username:hash

现在,当我尝试访问网页时:http://192.168.2.2/members/

它不会通过弹出框提示我输入用户名和密码。相反,它只显示位于成员目录中的 index.html。

我希望这个配置能正常工作:)

答案1

第一个猜测:您缺少 AuthGroupFile,它可能被设置为 /dev/null 以禁用所有组功能。

其他猜测:在 error_log 中查找特定的服务器/虚拟主机。

答案2

我建议使用 Apache 的内置工具来生成 htpasswd 条目。

htpasswd -c /www/Neon/auth/.htpasswd 用户名

这将为您创建 .htpasswd 文件。当您要向该文件添加新用户名时,请省略 -c 选项,它将向其中附加新条目。

答案3

查看此网站: http://www.htaccesstools.com/htpasswd-generator/

它可以帮助您生成正确的.htpasswd 文件。

您确定站点配置文件 /etc/apache2/sites-avaliable (如果您使用的是 apache) 中有指令“AllowOverride All”吗?如果没有,apache 将忽略 .htaccess。

抱歉我的英语不好,但我是意大利人。

答案4

问题可能是您告诉 Apache 在 中查找文件/www/Neon/auth/,而您实际上在 中创建了文件/var/www/Neon/auth?换句话说,您有什么理由认为 Apache 知道www/Neon/目录在里面/var/而不是在文件系统根目录?

相关内容