在Apache配置中何处添加目录指令以限制子文件夹访问
Apache敏感文件夹访问限制配置方案
配置位置说明
直接在/etc/httpd/conf/httpd.conf里新增独立的<Directory>配置块即可,无需修改现有VirtualHost(除非你的站点完全基于VirtualHost配置,此时将配置块放入对应<VirtualHost>标签内也可,但新增独立块逻辑更清晰)。你可以把这段配置放在现有<Directory>配置段的后面,或者直接加到文件末尾,Apache会按路径匹配优先级自动处理。
具体配置内容
要实现「禁止浏览器直接访问、允许PHP脚本正常读取」的要求,配置代码如下:
<Directory "/var/www/html/app/upload"> # 拒绝所有外部浏览器的直接访问请求 Require all denied # 允许服务器本地发起的请求(PHP脚本运行在服务器上,属于本地请求范畴) Require local # 如果需要给特定白名单IP开权限,补充以下规则(替换为你的目标IP/网段) # Require ip 192.168.1.100 10.0.0.0/24 </Directory>
关键规则解释
Require all denied:直接拦截所有外部HTTP访问请求,浏览器访问该目录会返回403禁止访问。Require local:为服务器内部进程开绿灯,PHP脚本属于服务器本地发起的请求,因此能正常读取该目录下的敏感文件。- 若你的站点通过VirtualHost配置,将这段
<Directory>块放入对应<VirtualHost>标签内,可将限制范围限定在该虚拟主机下。
生效步骤
- 检查配置语法是否正确:
httpd -t - 重启Apache服务使配置生效:
systemctl restart httpd
内容的提问来源于stack exchange,提问作者code-is-life
相关产品推荐
相关产品推荐

