ci4中routes.php必须位于app/config/routes.php,放错位置将导致路由完全失效且无报错;验证方法为清除缓存后运行php spark routes检查输出。

CodeIgniter路由配置文件放错位置会导致整个应用的URL映射完全失效,所有非首页请求均返回404,且框架不会报错提示文件缺失,只会静默跳过自定义路由规则。
CI4中routes.php必须放在正确路径
打开项目根目录,确认文件路径为 app/Config/Routes.php(注意大小写和层级)。
若误放在 application/config/routes.php、app/config/routes.php(小写config)、app/Controllers/Routes.php 或 public/Routes.php 等任意其他位置,CI4将完全忽略该文件——【框架根本不会加载它】。
这一步没有错误提示,你修改了100行路由规则也毫无作用,浏览器访问 /home 依然显示:404 - Can't find a route for 'get: home'。
CI3与CI4的路径差异极易混淆
方法一:CI3用户迁移时常见错误是沿用旧路径 application/config/routes.php。
方法二:在CI4中,application/ 目录已废弃,所有核心配置都移入 app/ 下;【app/Config/ 是唯一被自动扫描的配置目录】。
方法三:使用IDE全局搜索 Routes.php,检查是否意外生成了同名备份文件(如 Routes.php.bak、Routes.php~),这些文件虽在 app/Config/ 下,但CI4只认 Routes.php(无后缀)。
验证文件是否被真正加载
第一步:执行命令行指令清除路由缓存:php spark cache:clear。
第二步:立即运行 php spark routes,观察输出列表中是否有你添加的 /home 条目。
第三步:若列表为空或不含你的路由,则99%是文件位置错误或命名不规范;此时不要调试控制器逻辑,先核对磁盘路径。
注意:CI4的路由系统在首次请求时编译并缓存,改完文件不清理缓存会导致旧配置持续生效,看似改了实则没变。











