2013-03-11 6 views
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)); 

그러나 두 도메인 이름이 동시에 작동하지 않습니다.

답변

0

admin으로 $router$hostRoute1$hostRoute3을 추가하고 있습니다. 따라서 두 번째 할당이 첫 번째 할당을 우선합니다.

키를 고유하게 만드십시오. 예를 들어, 마지막 키를 adminnew으로 변경하면 좋습니다.

+0

답변 해 주셔서 감사합니다. 그래서 adminnew와 같은 admin 모듈을위한 새로운 모듈 이름을 만들어야합니다. 그렇죠? 다른 도메인에 대해 동일한 모듈 이름을 참조 할 수 있습니까? – NewPHP

+1

모듈 이름을 변경할 필요가 없습니다. 두 개의 서로 다른 도메인을 동일한 모듈로 라우트 할 수 있습니다. 위의 문제는 동일한 * 경로 이름 *'admin'을 가진 두 개의 다른 경로를 라우터에 추가하려고 시도하는 것입니다. 두 번째 경로의 이름을 변경하면 라우터가 둘 다 유지할 수 있습니다. –

관련 문제