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模块添加另一个域名。现在我使用admin.example.net
作为管理模块。我还需要添加admin.examplenew.net
。我不需要更改旧域。两者都应该同时工作。
我试过了,
$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));
但这两个域名不同时发挥作用。
答案 0 :(得分:0)
您要将同名$hostRoute1
和$hostRoute3
添加到$router
:admin
。所以第二个任务是覆盖第一个。
将密钥设为唯一 - 例如,将最后一个更改为adminnew
- 您应该很好。