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

CodeIgniter 4.0访问控制器URL反复出现404错误排查

CodeIgniter 控制器访问返回404问题解决

你当前代码的核心问题是缺少控制器对应的命名空间声明,CodeIgniter 4 采用 PSR4 自动加载规范,app/Controllers 目录下的所有类必须声明App\Controllers命名空间,否则框架无法定位到控制器类,会直接返回404且默认生产环境下不输出具体错误。

修正后的控制器代码

将app/Controllers/Demo.php的代码替换为以下内容即可:

<?php
namespace App\Controllers; // 这行是你原有代码缺失的关键声明
use CodeIgniter\Controller;

class Demo extends Controller
{
    public function test()
    {
        echo 1;
    }
}

其他可能触发404的排查点

如果修正命名空间后仍无法访问,依次检查以下配置项:

  • 文件名大小写匹配:Linux 环境严格区分文件名大小写,控制器文件名必须和类名完全一致,即必须命名为Demo.php,不能使用demo.php、DEMO.php这类大小写不匹配的命名。
  • 自动路由开关检查:打开app/Config/Routes.php配置文件,确认$routes->setAutoRoute(true);配置项为开启状态。如果该值设为false,框架只会匹配你手动定义的路由规则,未手动配置的路径会直接返回404。
  • 方法访问修饰符检查:控制器中可供外部访问的方法必须使用public修饰,private、protected修饰的方法无法通过URL直接访问,会触发404。
  • 开启调试模式定位问题:如果需要查看完整错误链路,可以将项目根目录下的env示例文件重命名为.env,将文件内的CI_ENVIRONMENT = production修改为CI_ENVIRONMENT = development,开启开发调试模式后,路由不匹配、类加载失败、语法错误等问题都会输出完整报错信息,无需盲查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 09:30:47