apache 2.4中需先写require all denied再叠加require ip放行指定ip,路径必须绝对且严格匹配documentroot;多条件组合须用容器。

Apache 的 <directory></directory> 配置中允许特定 IP 访问,关键在于用 Require ip 显式放行、配合 Require all denied 默认拒绝,并确保路径绝对精准、指令语法符合 2.4+ 规范。
必须显式拒绝,默认不开放
Apache 2.4 起默认拒绝所有请求。不写 Require 就等于禁止访问,不能靠“不写就允许”来假设放开。
- 先写
Require all denied确保基线安全 - 再叠加
Require ip 192.168.1.100或Require ip 10.0.0.0/8放行目标地址 - 多条
Require默认是“或”关系:满足任一即通过
路径必须与 DocumentRoot 完全一致
<directory></directory> 块只对当前虚拟主机生效,路径必须是绝对路径,且严格匹配 DocumentRoot 设置。
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 如果
DocumentRoot "/var/www/example.com",就写<directory></directory> - 不能简写成
<directory></directory>—— 这会跨站匹配,也可能不生效 - 子目录如后台路径单独定义:
<directory></directory>
常用 IP 允许写法示例
支持单 IP、CIDR 网段、IPv6 地址,也支持域名(需 DNS 可解析):
-
Require ip 127.0.0.1—— 仅本机 -
Require ip 192.168.5.0/24—— 整个 C 类网段 -
Require ip ::1—— IPv6 本地回环 -
Require ip 2001:db8::/32—— IPv6 网段 -
Require host example.com—— 允许该域名反向解析到的 IP
需要同时满足多个条件?用 RequireAll
比如“允许内网但排除某个测试 IP”,就得用容器组合逻辑:
<requireall> Require ip 192.168.0.0/16 Require not ip 192.168.20.55 </requireall>
注意:Require not ip 必须在 <requireall></requireall> 内才有效,单独写不构成“且”逻辑。










