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

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

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

http://192.168.2.2/index.html 

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

接下来,为了testing.htaccess文件的各种configuration,我在/ var / www中创build了一个名为members的新目录。

在这个目录下面,我创build并放置了一个.htaccess文件,其configuration如下:

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

我创build了一个目录path,如/ var / www / Neon / auth /

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

将用户名和散列放在.htpasswd文件中:我创build了一个用户名“neon”,并计算了密码的DES散列并将其放在.htpasswd文件中,格式为:

 username:hash 

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

它不会提示我用popup框input用户名和密码。 相反,它只是显示放置在成员目录内的index.html。

我想得到这个configuration工作:)

首先猜测:你缺less可以设置为/ dev / null的AuthGroupFile来禁用所有的组function。

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

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

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

这将为您创build.htpasswd文件。 当你去添加一个新的用户名到这个文件,省略-c选项,它会附加新的条目。

检查这个网站: http : //www.htaccesstools.com/htpasswd-generator/

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

你确定在你的网站conf / etc / apache2 / sites-avaliable(如果你使用apache)有指令“AllowOverride All”吗? 如果没有,.htaccess将被忽略从Apache。

对不起英语不好,但我是意大利人。

任何机会的问题是,你已经告诉Apache在/www/Neon/auth/查找文件,并且实际上已经在/var/www/Neon/auth创build了该文件? 换句话说,你有什么理由认为Apache知道www/Neon/目录在/var/而不在文件系统根目录下?