application/config/routes.php

URI路由

这个文件让你重映射URI请求到一个指定的控制器函数

一般来说,在URL字符串和它对应的控制器类/方法中有一个“一对一”的关系。URL中的段通常遵循以下模式:

example.com/class/method/id/

然而,在一些例子,你可能想重映射这个关系,以调用一个不同的类/方法,而不是URL对应的类/方法

请看用户指导,寻求完整信息:

https://codeigniter.com/user_guide/general/routing.html

预留路由

有三个预留路由:

    $route['default_controller'] = 'welcome';

如果URI没有包含任何数据(如访问www.codeigniter.com),这个路由决定了应该加载哪一个控制器类。

$route['404_override'] = 'errors/page_missing';

如果URL中提供的参数不能匹配任何合法路由,这个路由会告诉路由器要使用哪一个控制器/方法

$route['translate_uri_dashes'] = FALSE;

确切地说,这不是一个路由,但是它允许你自动地路由包含破折号“-“的控制器和方法名,‘-’不是一个合法的类或方法名字符,所以它需要翻译

当你设置这个选项为TRUE,它将会置换控制器段和方法段中所有的破折号,如访问my-controller/index将被路由器转换为my_controller/index。

 

如果URI中包含news/create,将调用news控制器的create 方法
$route['news/create'] = 'news/create';
//如果URI的第一段是news,第二段是任意字符,那么将调用news控制器的view方法,并将第二段的任意字符作为参数传递给它
$route['news/(:any)'] = 'news/view/$1';

//如果只含有news,则调用news控制器,并默认调用它的index方法
$route['news'] = 'news';

//如果访问www.codeigniter/index.php/6, 将访问news控制器的view方法,并传入参数6
$route['(:any)'] = 'news/view/$1';

以上的正则,匹配的都是index.php之后的参数,下面的是连index.php都没有的情况
//访问www.codeigniter.com时,将访问news控制器的index方法
$route['default_controller'] = 'news/index';

 

posted @ 2017-06-27 12:19  WebNewer  阅读(107)  评论(0编辑  收藏  举报