apache 2.4+中权限控制必须用require显式授权,废弃order/allow/deny;路径须绝对且与documentroot严格匹配;options和allowoverride用于限制功能而非访问权;上传目录需额外用filesmatch禁止脚本执行。

Apache 配置文件中通过 Require 明确放行,旧版的 Order/Allow/Deny 已完全废弃,继续使用会导致 500 错误或权限失效。
路径必须写绝对路径且与 DocumentRoot 严格一致
Apache 的 <directory></directory> 块只对当前虚拟主机生效,路径必须和 DocumentRoot 完全匹配(建议统一不加末尾斜杠):
- 若
DocumentRoot /var/www/example.com,就写<directory></directory> - 不能简写为
<directory></directory>——这会跨站匹配,且对当前站点无效 - 上传目录等子路径需单独定义:
<directory></directory> - 多个
<directory></directory>共存时,Apache 按最长路径优先匹配
用 Require 控制“谁能访问”
Require 是唯一授权机制,多条规则默认是“或”关系(满足任一即通过):
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
-
Require all granted:开放访问(仅限可信内网或测试环境) -
Require ip 192.168.1.0/24:仅允许可信局域网段 -
Require local:只允许本机(127.0.0.1和::1) -
Require not ip 203.0.113.99:黑名单单个 IP(需配合<requireall></requireall>实现“且”逻辑) - 要实现“允许全部但排除某 IP”,必须用容器:
<requireall><br> Require all granted<br> Require not ip 192.168.5.100<br></requireall>
用 Options 和 AllowOverride 控制“能做什么”
这两个指令不决定访问权,而是限制功能暴露面:
-
Options -Indexes +FollowSymLinks:禁用目录列表(防结构泄露),允许符号链接 -
Options None:最严模式,禁用所有扩展(推荐静态资源目录) -
AllowOverride None:禁止 .htaccess 覆盖,提升性能与安全(生产首选) -
AllowOverride All:仅在真需动态覆盖时启用,并确保 .htaccess 内容可信
敏感目录要额外阻断脚本执行
仅靠 Require 不足以防护上传目录、配置目录等高危路径,必须叠加脚本拦截:
- 在
<directory></directory>块内添加:<filesmatch><br> Require all denied<br></filesmatch>
- 同时确保系统级文件权限合理(如 uploads 目录可写但不可执行)
- 配置后务必运行
apachectl configtest验证语法,再systemctl reload apache2










