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

CodeIgniter动态URL配置异常:自定义路由无法正常匹配求助

解决CodeIgniter路由匹配异常的问题

嘿,我一眼就看出问题出在哪了——CodeIgniter的路由是按从上到下的顺序匹配的,你把那个匹配所有请求的通配路由$route['(.*)']放在了最前面,这就导致后面的login-registration路由规则根本没机会生效,所有请求都被先匹配到了data/$1这个规则里。

而且我注意到你写的路由里有个拼写错误:login-resgistration应该是login-registration(少了个t),这个也得修正,不然就算顺序对了也匹配不上。

给你调整后的正确路由配置:

// 先放具体的路由规则,确保优先匹配
$route['login-registration'] = 'f/login/index';
// 通配路由放在最后,处理其他未匹配的请求
$route['(.*)'] = 'data/$1';

另外,关于你提到的把www.mydomain.com/data/2改成www.mydomain.com/name-data的需求,你还需要单独加一条对应的路由规则,同样放在通配路由前面:

$route['name-data'] = 'data/2';
$route['login-registration'] = 'f/login/index';
$route['(.*)'] = 'data/$1';

这样配置后:

  • 访问www.mydomain.com/login-registration会正确跳转到f/login/index控制器方法
  • 访问www.mydomain.com/name-data会跳转到data/2
  • 其他像www.mydomain.com/anotherword这类未匹配的请求,才会走data/$1的规则

记住一个核心原则:具体的路由规则永远要放在通配/模糊匹配的规则前面,不然通用规则会把所有请求都拦截掉。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:57:06