Zend framework zend路由排除一个字符串

Zend framework zend路由排除一个字符串,zend-framework,routing,zend-route,Zend Framework,Routing,Zend Route,我定义 routes.kategoriler.route = ":lang/categories/:cat/:name" routes.kategoriler.defaults.controller = "category" routes.kategoriler.defaults.action = "index" routes.categories.route = ":lang/:type/:cat/:name" routes.

我定义

routes.kategoriler.route               = ":lang/categories/:cat/:name"
routes.kategoriler.defaults.controller = "category"
routes.kategoriler.defaults.action     = "index"


routes.categories.route               = ":lang/:type/:cat/:name"
routes.categories.defaults.controller = "types"
routes.categories.defaults.action     = "index"

类型捕捉“类别”单词。我把定义放在前后,但没有办法。您能提供一个解决方案吗?

使用类型要求,使其与“类别”不匹配。像这样:

routes.categories.reqs.type = "[^categories]"
遗憾的是,我的正则表达式技能并不高明,所以你可能想重写它(这有点难看,它不赞成任何包含“类别”的内容,但它给了你想法。)

使用来自


解决我的问题

为了能够接受除“类别”精确匹配之外的任何内容,请使用下面的regexp

^((?!^categories$).)*$
这将允许您将该类型用作“我的类别”或“产品类别”或与“类别”不完全匹配的任何其他类型

^((?!^categories$).)*$