我有一个目录“/var/www/web”,并且我配置了 .htaccess 和 htpasswd 以要求有效用户访问网站。此外,我在 sites-enabled 目录上有一个 web.conf 文件,服务器名称为 web.server.com。
如果我尝试使用“web.server.com”访问网站,访问会受到限制,必须输入凭据。但是,如果我尝试使用 server.com/web url 访问网站,我无需身份验证即可访问该网站。
我做错了什么?
<VirtualHost *******:80>
ServerAdmin webmaster@localhost
ServerName web.server.com
DocumentRoot /var/www/web
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/web">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow From All
</Directory>
htaccess:
# Apache/PHP settings:
#
#Access
AuthUserFile /var/www/web/.htpasswd
AuthName " Acceso restringido”
AuthType Basic
require valid-user
谢谢。
答案1
站点web.server.com
和server.com/web
是两个不同的站点。当您访问它们时,它们可能指向同一个目录,但 apache 使用两个不同的文件进行配置。您.httaccess
为虚拟站点启用了web.server.com
,但没有为 server.com
站点启用 。这就是为什么一个可以工作而另一个不工作的原因。
/var/www/web
为了解决这个问题,在站点配置中为目录添加相同的配置server.com
并查看。它应该有效。
您还应该更新以下条目以获得 Apache 2.4 的正确语法:
Options Indexes FollowSymLinks MultiViews
应该是这样的:
Options -Indexes +FollowSymLinks -MultiViews
您需要根据自己的需要进行调整。请注意+/-
启用或禁用选项的标志。