zend route排除一个字符串

时间:2010-12-03 16:47:26

标签: 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.categories.defaults.controller = "types"
routes.categories.defaults.action     = "index"

类型捕获“类别”字样。我之前和之后都有定义,但没办法。你能提供解决方案吗?

3 个答案:

答案 0 :(得分:2)

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

routes.categories.reqs.type = "[^categories]"

可悲的是,我的正则表达式技巧并不是最重要的,所以你可能想要重写它(它有点难看,它不赞成包含'类别'的任何东西,但它会给你这个想法。)

答案 1 :(得分:1)

使用提示 Regular expression to match a line that doesn't contain a word?

routes.categories.reqs.type_name        =  "^((?!categories).)*$"

解决了我的案子

答案 2 :(得分:0)

为了能够接受除“类别”的完全匹配之外的任何内容,请使用以下正则表达式

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

这样您就可以将该类型用作“我的类别”或“产品类别”或与“类别”不完全匹配的任何其他内容