如何让 Zend Route 根据域名使用不同的模块

2023-12-10

我想设置多个域名来使用同一个框架,但我似乎无法让 zend 的路由器屈服于我的意愿。

有很多使用子域的示例,但尝试使它们适用于整个域似乎并不像我期望的那样有效。

这是我最接近的,但它似乎不起作用:

resources.router.routes.mysite.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.mysite.route = "www.mysite.com"
resources.router.routes.mysite.defaults.module = "mysite"

resources.router.routes.mysite1.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.mysite1.route = "www.mysite1.com"
resources.router.routes.mysite1.defaults.module = "mysite1"

有什么建议么?


根据这个纳布尔线程,看起来您需要添加路径路由,然后将该路径路由链接到您的主机名路由。

所以也许是这样的:

; abstract routes to be used in chaining
resources.router.routes.plain.type = "Zend_Controller_Router_Route"
resources.router.routes.plain.abstract = true
resources.router.routes.plain.route = "/:controller/:action"
resources.router.routes.plain.defaults.controller = "index"
resources.router.routes.plain.defaults.action = "index"

resources.router.routes.mysite.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.mysite.abstract = true
resources.router.routes.mysite.route = "www.mysite.com"
resources.router.routes.mysite.defaults.module = "mysite"

resources.router.routes.mysite1.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.mysite1.abstract = true
resources.router.routes.mysite1.route = "www.mysite1.com"
resources.router.routes.mysite1.defaults.module = "mysite1"

; now the actual (non-abstract) routes are chains of the abstract ones
resources.router.routes.mysite-plain.type = "Zend_Controller_Router_Route_Chain"
resources.router.routes.mysite-plain.chain = "mysite,plain"

resources.router.routes.mysite1-plain.type = "Zend_Controller_Router_Route_Chain"
resources.router.routes.mysite1-plain.chain = "mysite1,plain"

实际上,我们可能可以使用占位符将两个抽象 mysiteX 路由折叠为一个抽象路由,例如:site代表mysiteX值并对其设置一些要求/默认值,但我认为这传达了这个想法。

未经测试 - 实际上我以前从未使用过链式路由 - 但似乎需要这样的东西才能使主机名路由工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Zend Route 根据域名使用不同的模块 的相关文章

随机推荐