想实现以下分页样式:
文章列表第1页: /list
文章列表第2页: /list/2
…
文章列表第100页: /list/100
写了以下两个url重写规则:
array(
‘/list’ => ‘list/index’,
‘/list/<page:\d*>’ => ‘list/index’,
);
此处需要两个正则,会消耗cpu资源,有没有用一个重写规则实现的方式呢?
想实现以下分页样式:
文章列表第1页: /list
文章列表第2页: /list/2
…
文章列表第100页: /list/100
写了以下两个url重写规则:
array(
‘/list’ => ‘list/index’,
‘/list/<page:\d*>’ => ‘list/index’,
);
此处需要两个正则,会消耗cpu资源,有没有用一个重写规则实现的方式呢?
可以合成
array(
‘/list/<page:\d*>|/list’ => ‘list/index’,
);
多谢 rickywu ,这个问题再延伸一下。
/list_t<type:\d*>/<page:\d*>
即: /list_t25 这样的网址如何做呢?
看看用下面这个。
‘/list_t<type:\d*>/<page:\d*>|/list_t<type:\d*>’=>‘list/index’
不好意思,这两个写法都是不对的。
第一个,可以解析生成的URL,本身生成的URL是不正确的。
第二个,不能生成也不能解析,直接生成500错误。
试验了一些其他的写法,都是不正确的,Yii的文档也没看到有其它的写法。
看来你还得用回原先的写法了:
array(
‘/list’ => ‘list/index’,
‘/list/<page:\d*>’ => ‘list/index’,
);
不知道有没有其它正确实现的方法,只是还没有被发掘出来?
还是现在的版本,暂时不提供这种支持呢?
期待正解。
页码就用GET参数不就行了,没必要放到url里吧