使用多个控制器从URL隐藏Codeigniter控制器名称

使用多个控制器从URL隐藏Codeigniter控制器名称,codeigniter,url,controller,Codeigniter,Url,Controller,我在my routes.php中使用以下代码从URL结构中隐藏控制器名称: $route['(:any)'] = "auth/$1"; 它工作得很好,但我的问题是:当我想访问另一个控制器时,它似乎将其视为隐藏控制器的函数 比如说。我有 http://mysite.com/controller1/somefunction 这就变成了: http://mysite.com/somefunction 如果我想访问: http://mysite.com/jsonfunction/anotherfu

我在my routes.php中使用以下代码从URL结构中隐藏控制器名称:

$route['(:any)'] = "auth/$1";
它工作得很好,但我的问题是:当我想访问另一个控制器时,它似乎将其视为隐藏控制器的函数

比如说。我有

http://mysite.com/controller1/somefunction
这就变成了:

http://mysite.com/somefunction
如果我想访问:

http://mysite.com/jsonfunction/anotherfunction/

如何在隐藏另一个控制器的同时访问另一个控制器?我真的不想让游客看到这只是多余的

恐怕您必须更具体地定义您的路线。 您仍然可以使用:

$route['(:any)'] = "auth/$1";
但它可能会转到路线列表的按钮

如果你想添加其他的路线,你必须把它们放在最上面。 例如:

$route['login'] = "auth/login";
$route['varY'] = "controllerX/varY";
$route['varY/(:any)'] = "controllerX/varY/$1";
$route['foobar'] = "controller/method";
$route['(:any)'] = "auth/$1";
有关更多信息和未来参考,请参阅本文档:

请参见