Php 为什么到控制器的新路由不工作,而旧路由正常工作?

Php 为什么到控制器的新路由不工作,而旧路由正常工作?,php,routes,codeigniter-3,Php,Routes,Codeigniter 3,我是codeigniter的新手。目前我正在尝试创建一个博客。 我使用.htaccess文件从url中删除index.php。然而,这没有问题 我的url路由对于posts控制器来说运行良好。但是新的管理员控制器不起作用 以下是路由文件: $route['default_controller']='welcome'; $route['404_override']=''; $route['translate_uri_dashes']=FALSE; //我的路线 $route['category']

我是codeigniter的新手。目前我正在尝试创建一个博客。 我使用.htaccess文件从url中删除index.php。然而,这没有问题

我的url路由对于posts控制器来说运行良好。但是新的管理员控制器不起作用

以下是路由文件:

$route['default_controller']='welcome';
$route['404_override']='';
$route['translate_uri_dashes']=FALSE;
//我的路线
$route['category']='posts/category';
$route['(:any)]='posts/index/$1';
$route['(:any)/(:any)]='posts/view/$1/$2';
$route['admin']='admin';
这是管理员控制器:

类管理员扩展CI\U控制器{
公共职能指数()
{
$this->load->view('admin/index');
}
}
以下是索引文件:


当我试图访问
http://localhost/admin
。但所有其他路线都运行良好,没有任何错误

行动

我尝试将默认的_控制器更改为admin controller,然后工作正常。我在
http://localhost

$route['default_controller']='admin';

那么,我在这里遗漏了什么呢?

由于订单或路线,您正面临这个问题。按照代码点火器顺序或给定的路线。让我们看看你的路线, 在
category
route之后,您编写了此route

$route['(:any)'] = 'posts/index/$1';
此路由仅意味着捕获除默认路由或
类别
路由之外的任何路由,因此无论您要转到哪个URL,它都会将您重定向到上述路由。 要解决此问题,请像这样更改路由顺序

$route['admin'] = 'admin';
$route['category'] = 'posts/category';
$route['(:any)'] = 'posts/index/$1';
$route['(:any)/(:any)'] = 'posts/view/$1/$2';