我是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)
答案 0 :(得分:0)
您的问题是“prod-cat”路由会将请求与/admin
匹配,因为您提供的正则表达式模式将匹配任何字符串。您需要对该路由进行一些限制以缩小其匹配范围,或者在其下方放置一些静态路由以匹配某些页面,例如/ admin,您希望转到其他控制器。
请参阅我在这个问题上给出的答案:Zend Routing problems了解更多关于ZF中路由如何工作的背景知识。