2009-08-31 22 views
3

我想知道在.ini配置文件設置,以使途徑,其中頁號參數是可選的,這樣如何使參數可選Zend框架路由器

http://news.mysite.com/national 
http://news.mysite.com/national/1 

指向同一個頁面。

我的代碼如下

resources.router.routes.news_list.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.news_list.route = "([a-zA-Z0-9\-]+)/([0-9\-]+)" 
resources.router.routes.news_list.defaults.module = "news" 
resources.router.routes.news_list.defaults.controller = "index" 
resources.router.routes.news_list.defaults.action = "category" 
resources.router.routes.news_list.defaults.page = 1 
resources.router.routes.news_list.map.1 = "categ" 
resources.router.routes.news_list.map.2 = "page" 
resources.router.routes.news_list.reverse = "%s/%s" 

some1能幫我一個解決方案修改此代碼,使其成爲這兩個URL工作

回答

7

你可以做到這一點,而無需使用正則表達式路線:

routes.news_list.route = ":action/:page" 
routes.news_list.defaults.module = "news" 
routes.news_list.defaults.controller = "index" 
routes.news_list.defaults.action = "category" 
routes.news_list.defaults.page = 1 

我假設你想要每一個請求去「新聞」模塊和「索引」控制器。只有動作和頁面在url中是可變的。

+0

Thanks Dude :-) – Nizam 2009-09-01 05:19:13

3
resources.router.routes.news_list.type = "Zend_Controller_Router_Route_Regex" 
resources.router.routes.news_list.route = "([a-zA-Z0-9-]+)/?([0-9]+)?" 
resources.router.routes.news_list.defaults.module = "news" 
resources.router.routes.news_list.defaults.controller = "index" 
resources.router.routes.news_list.defaults.action = "category" 
resources.router.routes.news_list.defaults.page = 1 
resources.router.routes.news_list.map.1 = "categ" 
resources.router.routes.news_list.map.2 = "page" 
resources.router.routes.news_list.reverse = "%s/%d" 

像這樣的東西也可以工作,以防您需要使用正則表達式。