Php 正在从Codeigniter中的URL中删除控制器函数名。多控制器时出错
使用CI如何路由到具有任何方法名称的特定控制器。 我有两个控制器:init和cms。然后在config.routes.php中:Php 正在从Codeigniter中的URL中删除控制器函数名。多控制器时出错,php,codeigniter,url,routing,config,Php,Codeigniter,Url,Routing,Config,使用CI如何路由到具有任何方法名称的特定控制器。 我有两个控制器:init和cms。然后在config.routes.php中: $default_controller = "init"; //default controller $controller_exceptions = array('admin','forums'); $route['default_controller'] = $default_controller; $route["^((?!\b".implode('
$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";
当输入backend/product时,我希望它路由到backend/product。同样,当输入backend/login时,我希望它路由到backend/login。这意味着我需要的是
$route['backend/anymethodnameaterbackend']=“cms/anymethodnameaterbackend”代码>而不是$route['backend/(:any)]=“cms/产品”代码>使用$route['cms/(:any)]=“cms/$1”代码>
结果将是:
$route['backend'] = 'cms';
$route['backend/(:any)'] = "cms/$1";
它不起作用。我也这么做了。登录到我的站点的实际路径是<代码>localhost/c2c/index.php/cms。这有一个带有操作的登录表单
form_open('cms/login')。我键入localhost/c2c/backend,然后页面打开,但尝试登录时抛出404错误。然后,尝试form\u open(base\u url().'cms/login')
或form\u open('/cms/login')
。仍然不起作用。当尝试登录时。按login,然后我的url变成localhost/c2c/cms/login
而不是localhost/c2c/backend/login
,这是相同的。您还有另一个问题,与路由无关。如果将'/cms/login'
更改为'/backend/login'
,uri将是正确的,但页面将显示相同的错误。你的cms控制器是什么样子的?cms控制器很简单,它包含很多功能。我记得我正在通过配置htaccess删除要写入url的控件名。这会造成问题吗