<Directory>权限配置核心是明确路径、用Require控制访问者、用Options和AllowOverride约束行为;必须用绝对路径成对包裹,Apache按层级匹配,子目录优先,多条件可组合实现精准管控。

在 httpd.conf 中配置 <Directory> 访问权限,核心是明确“允许谁、访问什么、用什么方式访问”。关键不在堆指令,而在理解每条指令的生效逻辑和组合效果。
明确目录路径并包裹配置块
必须用完整绝对路径(如 /var/www/html),不能用相对路径或别名。配置必须成对出现:
-
<Directory "/var/www/html">开始定义 - 中间写权限指令
-
</Directory>结束定义
Apache 会按目录层级从根目录(<Directory />)向上逐级匹配,子目录配置优先于父目录。
控制谁能访问:Require 指令
替代旧版 Order/Deny/Allow 的现代方式(Apache 2.4+ 默认启用):
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
Require all granted:放行所有请求(常见于网站根目录) -
Require all denied:拒绝所有请求(如保护/etc/类敏感路径) -
Require local:仅允许本机(127.0.0.1 和 ::1)访问 -
Require ip 192.168.1.0/24:只允许可信局域网 -
Require not ip 203.0.113.5:明确屏蔽某个恶意IP
多条件可组合,例如:Require all granted 后加 Require not ip 1.2.3.4 实现“全放开但拉黑特定IP”。
决定目录行为与扩展能力:Options 和 AllowOverride
这两项不直接控制“是否允许访问”,但极大影响安全边界和功能表现:
-
Options Indexes FollowSymLinks:开启目录浏览(危险!暴露文件结构)+ 允许符号链接。生产环境应避免Indexes,改用Options -Indexes显式关闭 -
Options ExecCGI:仅在需运行脚本的目录启用,普通静态资源目录无需 -
AllowOverride None:完全忽略该目录下的.htaccess文件(推荐默认值,提升性能与可控性) -
AllowOverride All:允许.htaccess覆盖部分主配置(仅在必须支持用户级重写或认证时启用)
典型安全配置示例
以保护网站后台目录 /var/www/html/admin 为例:
<Directory "/var/www/html/admin">
Options -Indexes
AllowOverride None
Require ip 192.168.10.0/24
Require ip 2001:db8::/32
</Directory>
说明:禁止目录列表、禁用 .htaccess、仅允许可信内网IPv4/v6访问。不需要 Require all denied,因为没匹配到的IP默认被拒。

















