http://document.thinkphp.cn/manual_3_2.html#route_define
提到路由可以被定义为几个参数连续的形式:
'URL_ROUTE_RULES'=>array(
'news/:year/:month/:day' => array('News/archive', 'status=1'),
'news/:id' => 'News/read',
'news/read/:id' => '/news/:1',
),而在分页类Page.class.php中分页生成的url是由U函数生成的: $this->parameter = empty($parameter) ? $_GET : $parameter; $this->url = U(ACTION_NAME, $this->parameter);U函数又是这样组装的 if(!empty($vars)) { // 添加参数
foreach ($vars as $var => $val){
if('' !== trim($val)) $url .= $depr . $var . $depr . urlencode($val);
}
}也就是说如果我定义的路由:news/:year/:month/:day需要分页的时候
分页链接会生成为
news/year/:year/month/:month/day/:day/p/:p.shtml
这样就无法匹配我定义的路由
要么在解析路由的时候把news/year/:year/month/:month/day/:day
解析为news/:year/:month/:day
要么U函数在拼接url的时候拼接成news/:year/:month/:day
要么就不要在帮助文档写这种坑爹的东西,并特别指出/:year/:month/:day这样的路由是不受U函数支持的
