2011-11-22 94 views
1

我想在ini文件中創建一個匹配以下URL的路由,但我一直沒有成功。zend路由正則表達式問題

/add-announce.html 
/add-announce-books-53.html 

我的路線是這樣的:

routes.add_announcement.type = "Zend_Controller_Router_Route_Regex" 
routes.add_announcement.route = "/add-announce(-[a-zA-Z_]+)?(-[\d]+)?.html" 
routes.add_announcement.defaults.module = announcement 
routes.add_announcement.defaults.controller = frontend 
routes.add_announcement.defaults.action = add 
routes.announcements.defaults.catName = null 
routes.announcements.defaults.catId = null 
routes.add_announcement.map.catName = 1 
routes.add_announcement.map.catId = 2 

回答

1

也許是因爲你的比賽有 ' - ' 開頭?你可以嘗試:

routes.add_announcement.route = "add-announce(?:-([a-zA-Z_]+))?(?:-([\d]+))?.html" 

編輯:我剛剛找到了錯誤,您設置映射值錯誤:

routes.add_announcement.map.catName = 1 
routes.add_announcement.map.catId = 2 

相反,你必須做這樣的:

routes.add_announcement.map.1 = "catName" 
routes.add_announcement.map.2 = "catId" 

而且routes.announcements.defaults.catName不應該routes.add_announcement.defaults.catName

+0

仍然失敗(頁面將不會加載)。感謝您的迴應:) – user1059855

+0

@ user1059855我編輯了我的答案..嘗試刪除第一個「/」 – SERPRO

+0

嘗試刪除它,添加反斜槓。也許這個問題在別的地方。然而,所有其他正常路線都可以正常工作: - | – user1059855