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));
}
위의 코드는 부트 스트랩 파일에 사용되어 잘 작동합니다. 관리자 모듈에 다른 도메인 이름을 추가해야합니다. 이제 관리자 모듈에 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와 같은 admin 모듈을위한 새로운 모듈 이름을 만들어야합니다. 그렇죠? 다른 도메인에 대해 동일한 모듈 이름을 참조 할 수 있습니까? – NewPHP
모듈 이름을 변경할 필요가 없습니다. 두 개의 서로 다른 도메인을 동일한 모듈로 라우트 할 수 있습니다. 위의 문제는 동일한 * 경로 이름 *'admin'을 가진 두 개의 다른 경로를 라우터에 추가하려고 시도하는 것입니다. 두 번째 경로의 이름을 변경하면 라우터가 둘 다 유지할 수 있습니다. –