Apache 要求有效用户仅在同一目录上使用一个 URL

Apache 要求有效用户仅在同一目录上使用一个 URL

我有一个目录“/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.comserver.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

您需要根据自己的需要进行调整。请注意+/-启用或禁用选项的标志。

相关内容