You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过.htaccess配置禁止URL直接访问includes文件夹内的PHP文件

限制includes文件夹HTTP访问的可用方案

以下方案均可以实现拦截URL直接访问的需求,同时不影响项目内部PHP文件的include/require调用:

方案1:服务器配置限制(优先推荐,性能最优)

无需修改项目代码,仅需调整服务器配置即可生效:

  • Apache环境:在includes文件夹下新建.htaccess文件,写入如下规则:
    Order Deny,Allow
    Deny from all
    
  • Nginx环境:在站点的Nginx配置文件中添加如下拦截规则,修改后执行nginx -s reload重载配置生效:
    location ~* /includes/.*\.php$ {
        deny all;
        return 403;
    }
    

方案2:PHP代码层面校验(兼容性最强,无需服务器配置权限)

适合没有服务器修改权限、或者需要跨环境兼容的场景:

  1. 在所有includes目录下的PHP文件头部加入如下代码:
    <?php
    if (!defined('ACCESS_ALLOWED')) {
        exit('Access Denied');
    }
    
  2. 在项目的入口文件(比如前端入口index.php、后台入口admin.php等)的最顶部提前定义常量:
    <?php
    define('ACCESS_ALLOWED', true);
    

直接通过URL访问include文件时,常量未定义会直接终止运行,内部调用时提前定义了常量即可正常执行。

方案3:移出Web根目录(安全性最高)

如果支持调整项目结构,直接将includes文件夹移动到站点的Web根目录之外。比如你的站点Web可访问根目录为/var/www/html/public,就将includes文件夹放到/var/www/html/includes路径下,该路径不会被HTTP请求访问到,完全杜绝直接访问风险,内部调用时传入对应相对路径或绝对路径即可。

内容的提问来源于stack exchange,提问作者MaxPayne420

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:57:03