2017-07-07 102 views
0

當前我有一個zend 1.xx項目,其中有三個模塊module1module2module3我們可以在Zend框架中爲模塊創建虛擬主機1.11

我的要求是爲每個模塊創建單獨的虛擬主機。

就像我們輸入http://module1是應該加載module1,然後我們輸入http://module2那麼它應該加載項目的module2

虛擬主機中的DocumentRoot值應該在默認值之外的模塊中應該是多少。

對於默認模塊.../project/public工作正常,但不適用於其他模塊。

回答

0

你絕對不能使用虛擬主機來做到這一點,除非你實際上爲每個模塊分割你的代碼庫(意味着只有代碼副本只有module1,module2或module3)。

你可以做很容易是禁用default routes(這將刪除訪問你的應用程序完全相信,我想你還沒有定義自己的路線),然後創建一個Route chain那鏈的route hostname和路由看起來像默認的那個。

所以:

  1. 禁用默認路由
  2. 創建一個路由,就像默認一個沒有模塊
  3. 創建3條路線的主機名(每個域一個)
  4. 創建3支鏈,有一個路由主機名(3.)和默認路由(2)
+0

感謝您的回覆。它需要虛擬主機設置? –

+1

不是真的,它取決於您當前的設置基本上...如果您當前的虛擬主機接受不同的域名,則無需更改;如果你當前的設置沒有虛擬主機,所有的流量都通過這個應用程序,所以沒有額外的設置...真的取決於你的設置,雖然... –

+0

以下是用於我的「節拍」模塊,仍然選擇默認模塊佈局 - '$ hostnameAdminRoute = new Zend_Controller_Router_Route_Hostname('beat',array('module'=>'beat')); (''控制器':''索引','行動'=>'索引')。 ))))'可能是什麼原因? –

0

我已經通過在應用程序中使用以下代碼集來實現此目的。 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" 

以上如果節拍模塊和主機名也代碼擊敗

相關問題