Codeigniter 如何创建不受';t覆盖其他控制器路由?

Codeigniter 如何创建不受';t覆盖其他控制器路由?,codeigniter,routes,Codeigniter,Routes,我的Codeigniter应用程序中有很多控制器,例如:注册、配置文件、主应用程序等等 现在我想构建“用户”控制器 $route['signup'] = "signup"; $route['(:any)'] = "user/display/$1"; 我想要的是: 如果人们转到url:example.com/signup,我希望使用默认路由到“signup”控制器 如果人们转到url:example.com/bobby.ariffin,我想将其重新路由到“User”控制器,因为我的应用程序中没

我的Codeigniter应用程序中有很多控制器,例如:注册、配置文件、主应用程序等等

现在我想构建“用户”控制器

$route['signup'] = "signup";
$route['(:any)'] = "user/display/$1";
我想要的是:

  • 如果人们转到url:example.com/signup,我希望使用默认路由到“signup”控制器
  • 如果人们转到url:example.com/bobby.ariffin,我想将其重新路由到“User”控制器,因为我的应用程序中没有任何控制器处理该url
我在config/routes.php中创建了这个:

但它覆盖了我的应用程序中到“用户控制器的所有路径

$route['signup'] = "signup";
$route['(:any)'] = "user/display/$1";
Codeigniter是否有任何简单的路由不覆盖其他控制器路由

更新---

对于这个问题,我有一个简单的正则表达式,来自:


其中ezstore、ezsell和login是应用程序中控制器的名称。

您必须明确定义所有这些路由。否则,您将始终处于“用户\控制器”状态

或者类似的东西。它们是按顺序运行的,所以首先定义的是什么,首先发生的是什么。因此,如果您捕获(:any),您将向该控制器发送任何内容


还请记住,您可以使用正则表达式,因此,如果您知道其中始终有“.”,您可以对此进行测试。

您也可以使用foreach语句。这样,您就可以将控制器保持在一个整洁的列表中

$controller_list = array('auth','dashboard','login','50_other_controllers');

foreach($controller_list as $controller_name)
{
    $route[$controller_item] = $controller_name;
}

$route['(:any)'] = "user/display/$1";

“你必须明确定义所有这些路线”哎哟!真的很严格。是的,我想我应该这么做。谢谢分享。。。
$controller_list = array('auth','dashboard','login','50_other_controllers');

foreach($controller_list as $controller_name)
{
    $route[$controller_item] = $controller_name;
}

$route['(:any)'] = "user/display/$1";