Codeigniter中的路由问题

时间:2012-06-04 06:04:27

标签: php codeigniter routes

我正在使用codeigniter开发一个Web应用程序。我在控制器中创建了一个名为" Administration"的文件夹。在这个文件夹中,我保留了所有与管理面板相关的控制器。

现在,我希望如果任何用户将网址键入www.mywebsite.com/administration,则应将用户重定向到相应的控制器,无论管理后的下一个网段是什么。如果用户键入wwww.mywebsite.com/administration/login,则应执行登录控制器。嗯,这是非常明显的事情。

现在我想要的是,当有人输入www.mywebsite.com/anything_else时,默认情况下应将其定向到其他控制器。我正在使用以下路线设置:

$route['default_controller'] = 'welcome';
$route['404_override'] = ''; 
$route['administration/(:any)']='administration/$1';
$route['(:any)']='fetch_pages';

请指导。

2 个答案:

答案 0 :(得分:0)

我建议你采取另一种方法:

$route['default_controller'] = 'welcome';
$route['404_override'] = 'fetch_pages/index'; 

此解决方案使您能够跳过声明显而易见的administration路由,并且将通过fetch_pages控制器调用所有其他路径。

Read more about 404_override

根据您的需求,当您无法根据show_404()查找数据时,可能需要考虑运行uri

答案 1 :(得分:0)

$route['^(?!administration).*'] = "fetch_pages";
$route['administration/(:any)']='Administration/$1';

我认为你创建了大写字母的文件夹" A"在管理