1

我正在使用 Zend,这是我的问题,我有两个不同的 url,我真的很想保持原样。

我希望 url :“www.urlA.com”被定向到 application/moduleA/indexController/indexAction 和“www.urlB.com”到 application/index/index。

换句话说,我希望 Zend_Router 确保当我键入 www.urlA.com/index/login 时,我使用 application/ moduleA /Index 控制器和 loginAction()。

我想保留经典的 Zend 路由,只需添加我的模块已经在 url 中指定的事实。

我在引导程序中有以下代码:

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

这种方式与“urlA”我正确地去 moduleA/index/index 但
“urlA/index/login”不起作用。

谢谢你的帮助。

4

1 回答 1

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)); 
于 2013-07-11T16:02:53.400 回答