我想设置多个域名来使用相同的框架,但我似乎无法让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"
有什么建议吗?
答案 0 :(得分:3)
基于this Nabble thread,您似乎需要添加路径路径,然后将该路径路由链接到主机名路由。
或许类似于:
; 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"
实际上,我们可能会使用像:site
这样的占位符将两个抽象的mysiteX路由折叠成单个抽象路由,以代替mysiteX
值并设置一些要求/默认值,但是我认为这传达了这个想法。
未经测试 - 实际上我之前从未玩过链式路线 - 但似乎需要这样的东西来使主机名路由工作。
答案 1 :(得分:0)
我之前通过实际使用基于当前值$_SERVER['SERVER_NAME']
的不同配置文件来完成此操作,该值由Web服务器配置。 (HTTP_HOST
是客户发送的。)
您可以使用INI file sections and inheritance在单个文件中执行相同的操作。