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

Codeigniter 4在PHP 8.0版XAMPP下访问控制器报404如何解决

CodeIgniter 4 控制器404故障排查原因

1. 文件名与类名大小写不匹配

  • PHP 8.0 对大小写校验严格程度高于PHP 7.4,Windows环境下XAMPP的PHP 7.4常自动兼容大小写不一致的情况,PHP 8.0会强制要求类名与文件名完全匹配
  • 确认所有控制器文件名与类名完全一致,例如类名为User的控制器文件必须命名为User.php,不允许是user.php或USER.php

2. 命名空间配置错误

  • 所有控制器顶部的命名空间需要与文件路径对应,根目录下控制器默认命名空间为namespace App\Controllers;,子目录Controllers/Admin/下的控制器命名空间必须为namespace App\Controllers\Admin;
  • 检查app/Config/Autoload.php中的$psr4配置,确认默认配置'App' => APPPATH存在且未被修改

3. Apache重写规则异常

  • 确认XAMPP Apache已开启mod_rewrite模块:打开Apache配置文件httpd.conf,找到LoadModule rewrite_module modules/mod_rewrite.so,确保行首的注释符#已移除
  • 确认项目根目录存在.htaccess文件且规则与CodeIgniter 4官方要求一致,同时检查app/Config/App.php中$indexPage配置为public string $indexPage = '';

4. 路由配置异常

  • 检查app/Config/Routes.php中是否开启自动路由:$routes->setAutoRoute(true);,CodeIgniter 4默认关闭自动路由,如未手动配置控制器路由、也未开启自动路由会直接返回404
  • 检查是否存在优先级更高的通配符路由,拦截了正常的控制器访问请求

5. 基础URL配置错误

  • 检查app/Config/App.php中$baseURL是否与当前项目访问路径匹配,例如项目存放在htdocs的ci4_demo目录下,$baseURL需要配置为http://localhost/ci4_demo/,错误的基础URL会导致路由路径匹配失败

6. PHP 8.0兼容问题导致类加载失败

  • 开启调试模式确认具体报错:修改项目根目录env文件,配置CI_ENVIRONMENT = development,再次访问控制器地址查看是否有语法报错
  • 排查控制器内是否使用了PHP 7.4废弃、PHP 8.0不支持的语法,例如参数类型声明不匹配、废弃函数调用等,类初始化失败会间接返回404

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 15:18:03