Ubuntu 中 Apache 访问控制配置指南
一 准备与通用原则
二 基于 IP 的访问控制
<Directory "/var/www/html/admin">
Require ip 203.0.113.10 198.51.100.0/24
</Directory>
<Directory "/var/www/html">
Require all granted
Require not ip 203.0.113.0/24
</Directory>
<Directory "/var/www/html/admin">
Order deny,allow
Deny from all
Allow from 203.0.113.10 198.51.100.0/24
</Directory>
三 基于用户密码的身份认证
sudo a2enmod auth_basic
sudo a2enmod authn_file
sudo htpasswd -c /etc/apache2/.htpasswd alice
sudo htpasswd /etc/apache2/.htpasswd bob
<Directory "/var/www/html/admin">
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
# 在 /var/www/html/admin/.htaccess
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
四 组合策略与 .htaccess 使用
<Directory "/var/www/html/admin">
# IP 白名单
Require ip 203.0.113.10 198.51.100.0/24
# 同时要求口令
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Directory>
五 生效验证与常见问题
sudo apache2ctl configtest # 语法检查
sudo systemctl restart apache2 # 使配置生效