CodeIgniter 4 自动路由默认关闭,需两处配置协同启用:1. app/Config/Feature.php 中 $autoRoutesImproved = true(启用改进版,更安全);2. app/Config/Routing.php 中 $autoRoute = true(开启总开关),否则仅响应明确定义的路由。

CodeIgniter 4 的自动路由(Auto Routing)默认是关闭的,必须手动启用才能使用。它不是靠单个开关控制,而是需要两处配置协同生效——一处确认使用「改进版」(Improved),另一处开启总开关。关掉也只需改回对应值,不需额外清理。
确认启用 Improved Auto Router
打开 app/Config/Feature.php,检查这一行:
public bool $autoRoutesImproved = true;
这是默认值,也是官方推荐设置。它决定框架使用更安全的改进版自动路由(拒绝大写字母、双连字符、_remap()、已注册控制器等)。如果为 false,即使总开关开了,实际走的仍是旧版逻辑(不推荐)。
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
开启或关闭自动路由总开关
打开 app/Config/Routing.php,找到这一属性:
public bool $autoRoute = true;
- 设为 true → 启用自动路由:当定义路由(Defined Routes)未匹配时,系统会按
APPPATH/Controllers/下的目录结构自动查找控制器和方法(如访问/users/list会尝试调用App\Controllers\Users::list()) - 设为 false → 完全禁用自动路由:只响应你在
app/Config/Routes.php中明确定义的路由,其余一律 404
注意:CI4.2+ 默认值是 false,所以新项目几乎都需要手动改为 true 才能用上自动路由。
验证是否生效
改完配置后,建议执行以下操作确认:
- 清空缓存:
php spark cache:clear - 查看当前所有可用路由:
php spark routes,若看到类似[auto] /users App\Controllers\Users::index的条目,说明自动路由已激活 - 确保控制器文件存在且命名规范(PascalCase 类名 + .php 后缀),方法为 public,否则自动匹配会失败


















