为什么访问控制和授权在 Apache 中不能协同工作

为什么访问控制和授权在 Apache 中不能协同工作

我有一台 Centos Linux 服务器,安装了 Apache 2.4,有多个虚拟站点。我花了很多时间基于 ip 实现访问控制,但失败了。我现在意识到,如果虚拟主机中的 .htaccess 中没有授权,访问控制就会起作用。

我的问题是如何使它们同时工作?即只有来自特定 IP 的访问者才被允许访问该网站并被要求输入 .htaccess/.htpasswd 密码。

这是我的虚拟主机设置。

Alias /test "/home/test"
<Directory "/home/test">
    Options All
    Require all denied
    AllowOverride All
    Require ip w.x.y.z
 </Directory>

和.htaccess 文件。

AuthUserFile /home/test/.htpasswd
AuthGroupFile /dev/null
AuthName "Welcome user"
AuthType Basic
<Limit GET POST>
require valid-user
</Limit>

如果我删除 .htaccess 和 .htpasswd,就会出现 Forbidden 的情况。启用这两个设置后,我原本以为它会只向来自有效 IP 的用户提供用户名和密码。为什么没有呢?如何让两者协同工作?谢谢。 在此处输入图片描述

相关内容