简体   繁体   English

从Codeigniter中的URL中删除控制器功能名称。 多控制器错误

[英]Removing controller function name from URL in Codeigniter. Error when multiple controller

Using CI how can I route to specific contoller with any method name. 使用CI如何使用任何方法名称路由到特定的控制器。 I have two controller : init and cms. 我有两个控制器:init和cms。 Then in config.routes.php : 然后在config.routes.php中:

 $default_controller = "init";  //default controller
 $controller_exceptions = array('admin','forums');

 $route['default_controller'] = $default_controller;
 $route["^((?!\b".implode('\b|\b', $controller_exceptions)."\b).*)$"] = $default_controller.'/$1';
 $route['404_override'] = '';

 $route['backend'] = 'cms';
 $route['backend/(:any)'] = "cms/product";  

When backend/product is typed I want it to route to backend/product. 键入后端/产品时,我希望它路由到后端/产品。 Again when backend/login is typed I want it to route to backend/login. 同样,当键入后端/登录时,我希望它路由到后端/登录。 That means what I need is $route['backend/anyMethodNameAfterbackend'] = "cms/anyMethodNameAfterbackend"; 这意味着我需要的是$route['backend/anyMethodNameAfterbackend'] = "cms/anyMethodNameAfterbackend";

Instead of $route['backend/(:any)'] = "cms/product"; 而不是$route['backend/(:any)'] = "cms/product"; use $route['cms/(:any)'] = "cms/$1"; 使用$route['cms/(:any)'] = "cms/$1"; The result would be : 结果将是:

$route['backend'] = 'cms';
$route['backend/(:any)'] = "cms/$1";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM