我的 Zend Framework 应用程序中有以下路由器.ini:
resources.router.routes.route_id.route = "/artists/:uid"
resources.router.routes.route_id.defaults.module = "admin"
resources.router.routes.route_id.defaults.controller = "showrooms"
resources.router.routes.route_id.defaults.action = "edit"
它工作并将"/artists/:uid"路由到正确的位置。
此应用程序是模块化的,上述路由适用于每个模块。
如何使路由仅应用于一个模块?
我有以下模块:
管理:admin.site.com
公司:corp.site.com
其他:other.site.com
我只希望在用户点击 Corp 模块时应用上述路由。
提前感谢!
你想要的是将子域路由到corp
模块为此,您必须告诉 Zend 路由使用主机名路由
routes.corp.type = "Zend_Controller_Router_Route_Hostname"
routes.corp.route = "corp.:domain.:tld"
这样,所有顶级域上所有域上的Subdoamin Corp将被路由。如果你只想要它 site.com 制作它
routes.corp.route = "corp.site.com"
现在您已经路由了子域,您可以通过将其添加到默认值来设置它以将其发送到模块
routes.corp.defaults.module = "corp"
要让它像"正常"一样路由,请通过
routes.corp.chains.index.type = "Zend_Controller_Router_Route"
routes.corp.chains.index.route = ":controller/:action/*"
routes.corp.chains.index.defaults.controller = "index"
routes.corp.chains.index.defaults.action = "index"
这样 corp.site.com/news/view/id/1 将转到公司模块中的新闻控制器