#year#/#month#/#id#.html转换成路由规则

浏览:675 发布日期:2013/09/04 分类:求助交流
项目中有一个自定义URL规则的需求,那么我就设置了如下通配符
#year# #month# #day# #id# #_p#等,其中#p#是分页页码,p前面可以自定义符号,这里下划线为例。
由于分页页码不一定存在,比如默认文章首页 1.html不包含分页码1_1.html。
比如
/html/#year#/#month#/#day#/#id##_p#.html

需要转换成正则路由规则
'/^\/html\/(\d+)\/(\d+)\/(\d+)\/(\d+)(_\d+)?\.html/'=>'Article/index?year=:1&month=:2&day=:3&id=:4&p=:5'

而这些通配符顺序不一致,问题难点在于:
1.#_p#标签的可有可无特殊性,有没有更好的处理办法。
2.如何将路由规则右侧querystring的参数和前面的通配子组对应,也就是:1,:2,:3这些与前面的括号对应。

问题我已经解决了,用的正则,数组遍历等手段,再提出来是想看看有木有更好的思路,甚至将这种模式推倒都可以。

最佳答案
评论( 相关
后面还有条评论,点击查看>>