我有一台 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 的用户提供用户名和密码。为什么没有呢?如何让两者协同工作?谢谢。