2013-04-15 87 views
1

我正在使用Zend,這裏是我的問題,我有兩個不同的網址,我真的想保持它們的樣子。將Zend_Router路由到特定模塊

我希望URL:「www.urlA.com」被定向到application/moduleA/indexController/indexAction 和「www.urlB.com」到application/index/index。

換句話說,我希望Zend_Router確保當我輸入www.urlA.com/index/login我使用應用程序/ 模塊A /索引控制器和loginAction()。

我想保留經典的Zend路由,只是添加了我的模塊已經在url中指定的事實。

我有以下代碼INT引導:

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)); 
} 

這樣的「烏拉」我正確地去moduleA /索引/索引,但
「烏拉/指數/登錄」不起作用。

感謝您的任何幫助。

回答

1

我也有類似的問題,曾經和我寫了這個:

//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));