1
protected function _initHostnameRouter()
{
$this->bootstrap('autoload');
$this->bootstrap('FrontController');
$front = $this->getResource('FrontController');
$router = $front->getRouter();
$hostRoute1 = new Zend_Controller_Router_Route_Hostname('admin.example.net',array('module' => 'admin'));
$hostRoute2 = new Zend_Controller_Router_Route_Hostname('vouchers.example.net',array('module' => 'vouchers'));
$pathRoute = new Curo_Route_NoModule();
$router->removeDefaultRoutes();
$router->addRoute('default', $pathRoute);
$router->addRoute('admin', $hostRoute1->chain($pathRoute));
$router->addRoute('vouchers', $hostRoute2->chain($pathRoute));
}
我有上面的代碼在Bootstrap文件中使用,它運行良好。我需要爲管理員模塊添加另一個域名。現在我使用admin.example.net
作爲管理模塊。我還需要添加admin.examplenew.net
。我不需要更改舊域名。兩者應該同時工作。Zend_Controller_Router_Route_Hostname兩個域名
我都試過了,
$hostRoute1 = new Zend_Controller_Router_Route_Hostname('admin.example.net',array('module' => 'admin'));
$hostRoute2 = new Zend_Controller_Router_Route_Hostname('vouchers.example.net',array('module' => 'vouchers'));
$hostRoute3 = new Zend_Controller_Router_Route_Hostname('admin.examplenew.net',array('module' => 'adminnew'));
$pathRoute = new Curo_Route_NoModule();
$router->removeDefaultRoutes();
$router->addRoute('default', $pathRoute);
$router->addRoute('admin', $hostRoute1->chain($pathRoute));
$router->addRoute('vouchers', $hostRoute2->chain($pathRoute));
$router->addRoute('adminnew', $hostRoute3->chain($pathRoute));
但是這兩個域名並不在同一時間工作。
感謝您的回答。所以我需要爲管理模塊創建一個新的模塊名稱(比如adminnew),不是嗎?我不能爲不同的域引用相同的模塊名稱嗎? – NewPHP 2013-03-11 22:39:07
無需更改模塊名稱;您可以將兩個不同的域路由到同一個模塊。上面的問題是,你正在試圖添加兩個不同的路由具有相同的*路由名*'admin'到路由器。如果您更改第二條路由的名稱,則路由器將能夠保留它們兩者。 – 2013-03-12 11:30:54