'URL_ROUTER_ON' => true,
'URL_MAP_RULES'=>array(
'new/top' => 'news/index/type/top'
)你看官方的这个例子,就是解决的new控制器下top路径重写的问题 '/^new\/(\d{4})\/(\d{2})$/' => 'News/achive?year=:1&month=:2',
'new/:year/:month/:day'=>'News/read', // 静态地址和动态地址结合这个也是必须匹配new 这个控制器^get(\w{2,5})[^\/]这样就能匹配了, 更超级的方式是get(\w+[^\/])这样就可以匹配了,下面开始说闭包支持——终极路由解决方案 'URL_ROUTE_RULES'=>array(
'test' => function(){
echo 'just test';
},
'hello/:name' => function($name){
echo 'Hello,'.$name;
})这是第一个,这样访问的时候你访问xxx/hello/hainuo会发现浏览器只输出了 Hello,hainuo别的什么都没有 '/^new\/(\d{4})\/(\d{2})$/' => function($year,$month){
echo 'year='.$year.'&month='.$month;
}这个例子也没有什么好说的,就是输出year=2015&month=6这都不是我们需要的,难道闭包后就不能够继续运行后续的程序吗? 'hello/:name' => function($name){
echo 'Hello,'.$name.'<br/>';
$_SERVER['PATH_INFO'] = 'blog/read/name/'.$name;
return false;
} 假设blog控制器中的read操作方法代码如下: public function read($name){
echo 'read,'.$name.'!<br/>';
}于是我们就顺利的找到了答案 'URL_ROUTE_RULES'=>array(
'/get(\w+)[^\/]'=>function(){
$_SERVER['PATH_INFO'] = 'blog/read/name/'.$name;
return false;
}只需要在路由规则中如下填写,便ok了,这样设置后就会出现一个问题使用U方法得到URI将不再是我们所需要的,所以,在有关URI的地方请直接按照上面我们需要的规则填写。ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。