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/:id\d'
=>
'article/list'
,
|
地址欄的地址是 域名/list/123.html
實際訪問的地址是:域名/article/list/id/123.html
但是這個沒有分頁的路由必須放在下面,或者直接用上面的那個,只不過第一頁的地址要帶個 "_1"。
具體使用方法詳見3.2手冊“路由”章節。