routes.php和控制器(codeigniter)

时间:2012-10-31 12:18:51

标签: php codeigniter codeigniter-routing

我有两个控制器  1-站点  2-管理

第一个控制器(站点)正在成功地工作 第二个控制器(Managemnt)不起作用。

我不知道errror是什么

我更改了routes.php,但仍然无效(管理)

$route['default_controller'] = "site";
$route['(:any)'] = "site/$1";
$route['Administration'] = "Administration/index";
$route['Administration/([a-z])'] = 'Administration/$1';

此链接有效:

  

example.com/hotel/12312

     

example.com/contact

     

example.com/city/newyork

     

example.com/Administration

但此链接不起作用:

  

example.com/Administration/hotels

     

example.com/Administration/add_new

     

example.com/Administration/cities

问题在哪里因为我厌倦了解决这个问题

thaks

3 个答案:

答案 0 :(得分:4)

它与你给出路线指令的女巫的命令有关。 代码点火器从上到下路由请求,因此如果您希望$ route ['Administration']在$ route ['(:any)']之前,则必须先设置它。

$route['default_controller'] = "site";
$route['Administration/([a-z])'] = 'Administration/$1';
$route['Administration'] = "Administration/index";
$route['(:any)'] = "site/$1";

我总是在最后采用put(:any)路线,因此它们不会覆盖更具体的路线。

答案 1 :(得分:2)

我有同样的问题&我得到了这个工作:

$route['default_controller'] = "welcome";
$route['([a-z-A-Z1-9_]+)'] = "site";
$route['management']="management";
$route['404_override'] = '';

它可以帮到你!

答案 2 :(得分:0)

我不熟悉Codeigniter路由,但对我来说,在到达管理路由之前,所有内容都匹配$route['(:any)'] = "site/$1";。尝试将其移到其他所有地方......您可能还需要切换([a-z])的管理路线以匹配

$route['default_controller'] = "site";
$route['Administration/([a-z])'] = 'Administration/$1';
$route['Administration'] = "Administration/index";
$route['(:any)'] = "site/$1";