2013-04-15 1 views
1

Я использую Zend, и вот моя проблема, у меня есть два разных URL-адреса, которые я действительно хочу сохранить, как они есть.URL-адрес маршрута Zend_Router для определенного модуля

Я хочу, чтобы URL-адрес: «www.urlA.com» был направлен на приложение/moduleA/indexController/indexAction и «www.urlB.com» на приложение/индекс/индекс.

Другими словами, я хочу Zend_Router, чтобы убедиться, что, когда я типа www.urlA.com/index/login я использовать приложение/ModuleA контроллер/Index и 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));