我们可以在Zend framework1.11中为模块创建虚拟主机吗?

时间:2017-07-07 08:08:33

标签: zend-framework virtualhost

目前我有一个[[[273 290]] [[271 292]] [[268 292]] [[267 293]] [[266 293]] [[265 294]] [[261 294]] [[261 295]] [[260 296]] [[258 296]] [[256 298]] [[254 298]] [[253 299]] [[250 299]] [[249 300]] [[247 300]] [[246 301]] [[244 301]] [[244 302]] [[242 304]] [[241 304]] [[240 305]] [[236 305]] [[234 307]] [[225 307]] [[225 308]] [[224 309]] [[198 309]] [[196 307]] [[192 307]] [[190 305]] [[171 305]] [[170 306]] [[166 306]] [[165 307]] [[164 307]] [[163 308]] [[161 308]] [[160 309]] [[166 309]] [[167 308]] [[168 308]] [[169 307]] [[180 307]] [[181 308]] [[189 308]] [[190 309]] [[189 310]] [[194 310]] [[196 312]] [[202 312]] [[203 313]] [[203 314]] [[204 313]] [[205 314]] [[224 314]] [[223 313]] [[224 312]] [[241 312]] [[242 313]] [[242 314]] [[243 314]] [[245 316]] [[245 319]] [[244 320]] [[244 322]] [[245 323]] [[245 324]] [[244 325]] [[244 326]] [[245 326]] [[246 325]] [[247 326]] [[252 326]] [[253 327]] [[253 328]] [[256 328]] [[257 329]] [[257 330]] [[261 330]] [[262 331]] [[262 332]] [[272 332]] [[273 333]] [[273 334]] [[281 334]] [[282 333]] [[286 333]] [[287 332]] [[298 332]] [[299 331]] [[306 331]] [[306 330]] [[307 329]] [[311 329]] [[313 327]] [[316 327]] [[318 325]] [[322 325]] [[323 324]] [[324 324]] [[325 323]] [[328 323]] [[328 322]] [[329 321]] [[330 321]] [[330 320]] [[333 317]] [[334 317]] [[334 316]] [[335 315]] [[337 315]] [[337 314]] [[338 313]] [[338 312]] [[339 311]] [[339 308]] [[338 307]] [[338 306]] [[336 304]] [[335 304]] [[334 303]] [[327 303]] [[326 302]] [[325 302]] [[324 303]] [[322 301]] [[320 301]] [[318 299]] [[316 299]] [[315 298]] [[315 297]] [[313 297]] [[312 296]] [[310 296]] [[309 295]] [[308 295]] [[307 296]] [[295 296]] [[294 297]] [[293 297]] [[290 294]] [[289 294]] [[288 293]] [[287 293]] [[285 291]] [[282 291]] [[281 290]]] 项目,其中包含三个模块zend 1.xxmodule1module2

我的要求是为每个模块创建单独的虚拟主机。

如果我们输入module3,则应该加载module1,然后输入http://module1,那么它应该加载项目的http://module2

默认情况下模块的虚拟主机中的module2值应该是什么。

对于默认模块DocumentRoot可以正常工作,但不适用于其他模块。

2 个答案:

答案 0 :(得分:0)

绝对不能使用虚拟主机来执行此操作,除非您实际拆分每个模块的代码库(意味着只包含module1,module2或module3的代码副本)。

您可以轻松地执行的操作是禁用default routes(这将完全取消对您的应用的访问权限,我相信,我认为您尚未定义自己的路线),然后创建一个Route chain链接route hostname和看起来像默认路线的路线。

所以:

  1. 禁用默认路由
  2. 创建一条路线,就像没有模块的默认路线一样
  3. 创建3个路由主机名(每个域一个)
  4. 创建3个具有路由主机名(3.)和默认路由(2。)
  5. 的链

答案 1 :(得分:0)

我通过在application.ini文件中使用以下代码集来实现这一目标 -

; This piece of code used for rounting usoc host to default module 
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" 

以上代码,如果是默认模块。

; This piece of code used for rounting beat host to beat module
resources.router.routes.beat.type = "Zend_Controller_Router_Route_Hostname"
resources.router.routes.beat.route = "beat"
resources.router.routes.beat.defaults.module = "beat"
resources.router.routes.beat.chains.index.type = "Zend_Controller_Router_Route"
resources.router.routes.beat.chains.index.route = ":controller/:action/*"
resources.router.routes.beat.chains.index.defaults.controller = "index"
resources.router.routes.beat.chains.index.defaults.action = "index"

以上代码,如果节拍模块和主机名也被击败​​