codeigniter 路由配置文件位置及语法因版本而异:ci3 为 application/config/routes.php,使用 $route 数组;ci4 为 app/config/routes.php,通过 $routes 对象方法定义,且需清除缓存生效。

CI3 的路由文件在 application/config/routes.php
这是一个纯 PHP 文件,核心变量是 $route 数组。所有规则都以键值对形式写在这里,比如:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
$route['about'] = 'pages/view/about';$route['product/(:num)'] = 'products/detail/$1';$route['default_controller'] = 'home';$route['404_override'] = 'errors/not_found';
CI4 的路由文件在 app/Config/Routes.php
它不再是数组赋值,而是通过 $routes 对象调用方法来定义,例如:
$routes->get('about', 'Pages::view/$1');$routes->add('product/(\d+)', 'Products::detail/$1');$routes->setDefaultNamespace('App\Controllers\');$routes->group('admin', function($routes){ $routes->get('dashboard', 'Admin::dashboard'); });
注意几个关键点
– CI4 中写 $route[...] 是无效的,框架会直接忽略;
– CI3 的 routes.php 放在 application/config/ 下,CI4 的 Routes.php 必须放在 app/Config/ 下且首字母大写;
– 修改后 CI4 需运行 php spark cache:clear 清缓存才生效;
– 路由不生效,大概率不是写错了,而是请求根本没进框架(检查 Apache/Nginx 重写配置是否到位)。










