CodeIgniter删除classname不起作用

时间:2014-09-23 13:17:56

标签: php codeigniter

参考:StackOverflow Question

$route['default_controller'] = "homepage";
$route['(:any)'] = "handler/$1";
$route['404_override'] = '';

网址

http://localhost/sitename/homepage // Has to me mapped to Homepage controller

http://localhost/sitename/url-with-a-slug //URL with A-Z a-z 0-9 and - other than homepage has to be mapped to handler controller

现在,在routes.php。

中添加$route['(:any)'] = "handler/$1";时,两个URL都不起作用

但如果没有该行,则homepagehandler/url-with-a-slug模式可以正常工作。

如何解决这个问题?

注意:当http://localhost/handler/url-with-a-slug行被移除时,控制器handler.php存在且$route['(:any)'] = "handler/$1";有效。

2 个答案:

答案 0 :(得分:0)

尝试更改

$config['uri_protocol']

来自config / config.php

答案 1 :(得分:0)

试试这个route,尚未对其进行测试,因为我不在我的开发机器上。但你会有这个想法

$route['default_controller'] = "homepage"; //default
$route['404_override'] = '';               //404
$route['homepage'] = 'homepage';           // 0
$route['sitename/homepage'] = 'homepage';  // 1
$route['(:any)'] = "handler/$1";           // 2

如果您有网址http://localhost/sitename/homepage,则会在1下处理,因为CI会按层次顺序处理它的路由。因此,如果上面的网址不符合1路由,它将首先在1下进行处理,直到找到最佳路线为止。{/ p>