模块化与Zend路由器不起作用

时间:2012-04-15 15:45:06

标签: php zend-framework router modular

我是Zend Framework的新手 我在Zend上遇到路由器和模块的问题 我有一个router.ini来路由友好的URL重写:

routers.prod-cat-details.type           = Zend_Controller_Router_Route_Regex
routers.prod-cat-details.route          = "([a-zA-Z0-9\-]+)/*([a-zA-Z0-9\-]+)/*([a-zA-Z0-9\-]+)\.html"
routers.prod-cat-details.defaults.module         = "default"
routers.prod-cat-details.defaults.controller    = "products"
routers.prod-cat-details.defaults.action         = "detail"
routers.prod-cat-details.map.1          = "uri_cat_level0"
routers.prod-cat-details.map.2          = "uri_cat"
routers.prod-cat-details.map.3          = "uri"


routers.prod-cat-parent.type            = Zend_Controller_Router_Route_Regex
routers.prod-cat-parent.route           = "([a-zA-Z0-9\-]+)/*([a-zA-Z0-9\-]+)"
routers.prod-cat-parent.defaults.module         = "default"
routers.prod-cat-parent.defaults.controller     = "products"
routers.prod-cat-parent.defaults.action         = "category"
routers.prod-cat-parent.map.1           = "uri_cat_level0"
routers.prod-cat-parent.map.2           = "uri_cat"


routers.prod-cat.type           = Zend_Controller_Router_Route_Regex
routers.prod-cat.route          = "([a-zA-Z0-9\-]+)"
routers.prod-cat.defaults.module        = "default"
routers.prod-cat.defaults.controller    = "products"
routers.prod-cat.defaults.action        = "category"
routers.prod-cat.map.1          = "uri_cat"

我的代码分为模块 当我不使用路由器(不要在Boottrap上设置路由器)时,我可以使用模块zend(exp:localhost / admin - >转到管理模块) 但是当我激活路线时 - > localhost / admin - >转到“产品”控制器“类别”行动

Plz帮我解决这个问题。提前致谢 (抱歉我的英语不好:D)

1 个答案:

答案 0 :(得分:0)

您的问题是“prod-cat”路由会将请求与/admin匹配,因为您提供的正则表达式模式将匹配任何字符串。您需要对该路由进行一些限制以缩小其匹配范围,或者在其下方放置一些静态路由以匹配某些页面,例如/ admin,您希望转到其他控制器。

请参阅我在这个问题上给出的答案:Zend Routing problems了解更多关于ZF中路由如何工作的背景知识。