thinkphp的路由功能很实用也很强大,可以简化url,有强大的正则匹配,可以做成任何想要的url样式。
在前台的config.php配置文件中:
1.首先开启路由
1
|
'URL_ROUTER_ON' => true, |
2.配置路由规则了,使用URL_ROUTE_RULES参数进行配置,格式为数组。
1
2
3
4
5
|
'URL_ROUTE_RULES' => array ( 'news/:year/:month/:day' => array ( 'News/archive' , 'status=1' ), 'news/:id' => 'News/read' , '/^new/(d{4})/(d{2})$/' => 'News/achive?year=:1&month=:2' , ), |
例:
最常见的使用方法:
例如:'news/:id' => 'News/read',
在在地址栏中输入 域名/news/123.html 其实访问的是 域名/news/read/id/123.html
还有经常用到的对分页url的处理:
当有分页时:
1
|
'/^list/(.*d)_(.*d)$/' => 'article/list?id=:1&p=:2' , |
最终效果:
地址栏的地址是 域名/list/123_2.html
实际访问的地址是:域名/article/list?id=123/p=2
当没有分页时匹配的是这个规则:
1
|
'list/:idd' => 'article/list' , |
地址栏的地址是 域名/list/123.html
实际访问的地址是:域名/article/list/id/123.html
但是这个没有分页的路由必须放在下面,或者直接用上面的那个,只不过第一页的地址要带个 "_1"。
具体使用方法详见3.2手册“路由”章节。