【问题标题】:could we create Virtual host for modules in Zend framework1.11我们可以在 Zend framework1.11 中为模块创建虚拟主机吗
【发布时间】:2017-07-07 08:08:33
【问题描述】:

目前我有一个zend 1.xx 项目,其中包含三个模块module1module2module3

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

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

对于非默认模块,虚拟主机中的DocumentRoot 值应该是多少。

对于默认模块 .../project/public 工作正常,但不适用于其他模块。

【问题讨论】:

    标签: zend-framework virtualhost


    【解决方案1】:

    您绝对不能使用虚拟主机来执行此操作,除非您实际上将代码库拆分为每个模块(意味着只有模块 1、模块 2 或模块 3 的代码副本)。

    您可以非常轻松地禁用default routes(我相信这将完全删除对您的应用程序的访问权限,我想您还没有定义自己的路线),然后创建一个链接@987654323 的Route chain @ 和一个看起来像默认路由的路由。

    所以:

    1. 禁用默认路由
    2. 创建一个没有模块的默认路由
    3. 创建 3 个路由主机名(每个域一个)
    4. 创建 3 个具有路由主机名 (3.) 和默认路由 (2.) 的链

    【讨论】:

    • 感谢您的回复。是否需要设置虚拟主机?
    • 不是真的,这基本上取决于您当前的设置...如果您当前的虚拟主机接受不同的域,则无需更改;如果您当前的设置没有虚拟主机,则所有流量都通过此应用程序,因此无需额外设置...不过确实取决于您的设置...
    • 以下是用于我的“beat”模块的代码,并且仍然选择默认模块布局 - $hostnameAdminRoute = new Zend_Controller_Router_Route_Hostname('beat', array('module' => 'beat')); $router ->addRoute('beat' , $hostnameAdminRoute->chain(new Zend_Controller_Router_Route(':controller/:action/*', array('controller'=>'index', 'action'=>'index')))) 可能是什么原因?
    • 我也只将上述代码添加到默认模块的 Bootstrap.php 文件中。
    • 您的目标是哪个网址?我可以在您的代码中看到一个路由主机名,但其中没有主机...
    【解决方案2】:

    我通过在 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"
    

    上面的代码如果为节拍模块和主机名也是节拍

    【讨论】:

      猜你喜欢
      • 2015-02-28
      • 2017-08-01
      • 2012-11-17
      • 1970-01-01
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 2014-08-15
      • 1970-01-01
      相关资源
      最近更新 更多