Php 如何从codeigniter中的url中删除控制器名称,并且仍然能够在另一个控制器上重定向?

Php 如何从codeigniter中的url中删除控制器名称,并且仍然能够在另一个控制器上重定向?,php,.htaccess,codeigniter,http-redirect,codeigniter-routing,Php,.htaccess,Codeigniter,Http Redirect,Codeigniter Routing,我正在使用Codeigniter构建一个网站,并且我已经改变了URL从http://localhost/site_controller/home至http://localhost/home 我通过使用.htaccess->RewriteBase改变了这一点 将$config['index\u page']更改为$config['index\u page']='' 在路线上,我已经改变了: $route['default_controller'] = "site"; $route['(:any)

我正在使用Codeigniter构建一个网站,并且我已经改变了URL从
http://localhost/site_controller/home
http://localhost/home

我通过使用.htaccess->RewriteBase改变了这一点 将
$config['index\u page']
更改为
$config['index\u page']=''
在路线上,我已经改变了:

$route['default_controller'] = "site";

$route['(:any)'] = "site/$1";
它只适用于站点控制器,但我的问题是,我有另一个名为admin的控制器,当我尝试登录并使用redirect('admin/index')进行重定向时,会出现404错误


如何从站点控制器重定向到管理员控制器?

如果要从
(:any)=>站点进行路由,则必须为管理员控制器指定更高优先级的路由,以覆盖这些页面的路由

$route['default_controller'] = "site";

$route['admin/(:any)'] = "admin/$1";
$route['(:any)'] = "site/$1";

如果要从
(:any)=>站点进行路由,则必须为管理员控制器指定更高优先级的路由,以覆盖这些页面的路由

$route['default_controller'] = "site";

$route['admin/(:any)'] = "admin/$1";
$route['(:any)'] = "site/$1";