2011-05-12 32 views
0

我有三臺路由器,如下所示。我想向第一臺路由器添加一個例外,以便它不會處理其他兩臺路由器。我試圖在第一個路由器中添加異常狀態,但它不起作用。
routes.frontindex.route = "/?([a-zA-Z0-9_-]+)!link !template ?/?([a-zA-Z0-9_-]+)?"zend路由器ini文件在規則中添加正則表達式例外

任何想法,我錯了嗎?

; frontindex routes starts here 
routes.frontindex.type = "Zend_Controller_Router_Route_Regex" 
routes.frontindex.route = "/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?" 
routes.frontindex.defaults.module = frontManagement 
routes.frontindex.defaults.controller = Index 
routes.frontindex.map.page = 1 
routes.frontindex.map.siteid = 2 
; frontindex routes stops here 


; templateStyles routes starts here 
routes.templatestyle2.type = "Zend_Controller_Router_Route_Regex" 
routes.templatestyle2.route = "template/templatestyle/(add|test)/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?" 
;routes.templatestyle2.defaults.module = templateManagement 
;routes.templatestyle2.defaults.controller = Template-style 
;routes.templatestyle2.map.action = 1 
;routes.templatestyle2.map.key = 2 
;routes.templatestyle2.map.id = 2 
; templateStyles routes stops here 

; link routes starts here 
    routes.link.type = "Zend_Controller_Router_Route_Regex" 
    routes.link.route = "link/link/(add|test)/?([a-zA-Z0-9_-]+)?/?([a-zA-Z0-9_-]+)?" 
    ;routes.link.defaults.module = linkManagement 
    ;routes.link.defaults.controller = link-style 
    ;routes.link.map.action = 1 
    ;routes.link.map.key = 2 
    ;routes.link.map.id = 2 
    ; linkroutes stops here 

回答

0

試試這個方法:

  • 首先添加一個導管,所有的默認路由是一種Zend_Controller_Router_Route中,而不是一個Zend_Controller_Router_Route_Regex。使用正則表達式在此路線上添加requirement,該正則表達式將排除其他路線的匹配案例。

在.ini文件的語法是:

routes.frontindex.reqs.something="my-regexp-catching-valid-case-for-this-default-not-regexp-route" 
+0

不明白高於一切。你能解釋一下這將如何適合我的上述代碼嗎? – Developer 2011-05-12 13:01:12

+0

在第一條路線中(它不是正則表達式)在路線的變量中映射第一個單詞('模板','鏈接'或'東西'),並在該單詞上添加要求(不是'模板'或'link'),請參閱需求鏈接。 – regilero 2011-05-12 17:56:26