主机托管站点根目录登录文件移至auth子目录后访问报500错误咨询
问题原因
- 你的登录相关文件移动到
auth子目录后,原代码中的相对路径_inc/xxx.php是相对于当前执行文件的所在目录计算的,程序会尝试从www_root/auth/_inc/路径下加载文件,但你的_inc目录实际存放在站点根目录www_root/下,路径不匹配导致文件加载失败,触发PHP致命错误抛出500状态码。
修复方案
方案1:直接修改相对路径(快速适配)
将login.php中原有的引用代码全部修改为向上回溯一级目录的相对路径即可:
require_once "../_inc/DBController.php"; require_once "../_inc/Auth.php"; require_once "../_inc/Util.php"; $auth = new Auth(); $db_handle = new DBController(); $util = new Util(); // if form was not sent then check if user is logged in require_once "../_inc/ValidateCookiesSessionLogin.php";
方案2:使用绝对路径(避免后续移动文件再次出错)
优先推荐这种方案,你可以在站点公共配置中先定义根目录常量,后续所有文件引用都基于该常量写绝对路径:
- 先在
www_root/_inc/config_files.php中添加根目录定义:
// 定义站点根目录绝对路径 define('SITE_ROOT', dirname(__DIR__) . '/');
- 之后所有文件的引用都修改为如下格式,不受文件所在目录层级影响:
require_once SITE_ROOT . "_inc/DBController.php"; require_once SITE_ROOT . "_inc/Auth.php"; // 其余引用同理修改即可
内容的提问来源于stack exchange,提问作者Dump
相关产品推荐
相关产品推荐

