Zend_Controller_Router_Rewrite - 从一个模块重写到另一个模块

时间:2011-07-25 09:01:15

标签: zend-framework routing

我在Zend Framework项目中尝试看似简单的东西:我想将一个模块重写为另一个模块,以便将相同的代码用于用户看来是两个不同的模块。

所以URL http://www.mydomain.net/subadmin/anyController/anyAction 被重写为 http://www.mydomain.net/admin/anyController/anyAction

用户仍然应该看到http://www.mydomain.net/subadmin/anyController/anyAction

我不会想到这应该太难了,但我无法弄明白。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

添加执行映射的路由。

使用.ini文件指定映射:

routes.subadmin.type                    = "Zend_Controller_Router_Route"
routes.subadmin.route                   = "subadmin/:controller/:action"
routes.subadmin.defaults.module         = "admin"
routes.subadmin.defaults.controller     = "index"
routes.subadmin.defaults.action         = "index"

或者,使用Bootstrap.php中的代码:

protected function _initRoutes()
{
    $this->bootstrap('frontcontroller');
    $front = $this->getResource('frontcontroller');
    $router = $front->getRouter();

    $route = new Zend_Controller_Router_Route('subadmin/:controller/:action', array(
        'module'        => 'admin',
        'controller'    => 'index',
        'action'        => 'index',
    ));
    $router->addRoute($route);
}