2013-04-15 1 views
1

J'utilise Zend, et voici mon problème, j'ai deux URL différentes que je veux vraiment garder comme elles sont.Zend_Router route url à un module spécifique

Je souhaite que l'URL: "www.urlA.com" soit dirigée vers l'application/moduleA/indexController/indexAction et "www.urlB.com" vers l'application/index/index.

En d'autres termes, je veux Zend_Router pour vous assurer que j'utiliser l'application/Modulea/contrôleur d'index quand je tape www.urlA.com/index/login et loginAction().

Je veux conserver le routage Zend classique, en ajoutant simplement le fait que mon module est déjà spécifié dans l'URL.

J'ai le code suivant int bootstrap:

protected function _initRouter() 
{ 
    $router = Zend_Controller_Front::getInstance()->getRouter(); 
    $route = new Zend_Controller_Router_Route_Hostname(
     'www.urlA.com', 
     array(
      'module'=>'moduleA' 
     ) 
    ); 
    $routeURI = new Zend_Controller_Router_Route(); 
    $router->addRoute('modulea', $route->chain($routeURI)); 
} 

De cette façon, avec le i correctement "Urla" aller à Modulea/index/index mais
"Urla/index/login" ne fonctionne pas .

Merci pour toute aide.

Répondre

1

J'ai eu un problème similaire une fois et j'ai écrit ceci:

//ADMIN page 
$admin = array('module' => 'admin', 'controller' => 'index', 'action' => 'index'); 
$hostRoute_admin = new Zend_Controller_Router_Route_Hostname('admin.mysite.com', $admin); 

//special environement Website 
$env = array('module' => 'env', 'controller' => 'index', 'action' => 'index'); 
$hostRoute_env = new Zend_Controller_Router_Route_Hostname('env.mysite.com', $env); 

//Zend classic routing 
$plainPathRoute = new Zend_Controller_Router_Route(':controller/:action/*', 
     array('controller' => 'index', 'action' => 'index')); 

//add specific routing 
Zend_Controller_Front::getInstance()->getRouter()->addRoute('admin', $hostRoute_admin->chain($plainPathRoute)); 
Zend_Controller_Front::getInstance()->getRouter()->addRoute('env', $hostRoute_env->chain($plainPathRoute));