1

我的 Zend Framework application.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"

它工作并将“/艺术家/:uid”路由到正确的位置。

此应用程序是模块化的,上述路由适用于每个模块。

您如何使路由仅适用于一个模块?

我有以下模块:

管理员:admin.site.com

公司:corp.site.com

其他:other.site.com

如果用户点击Corp模块,我只希望应用上述路由。

提前致谢!

4

1 回答 1

1

您想要的是将子域路由到 corp 模块

为此,您必须告诉 zend route 使用主机名路由

routes.corp.type = "Zend_Controller_Router_Route_Hostname"
routes.corp.route = "corp.:domain.:tld"

这样,所有顶级域上的所有域上的子域公司都将被路由。如果您只想为 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 将转到 corp 模块中的 newsController

于 2012-06-13T15:35:43.047 回答