我在Zend Framework中遇到URL重写问题,希望有人帮我解决。
我需要重命名模块管理员,因为URL中的admindev适用于所有控制器和操作。
这里我的代码写在Bootstrap.php中:
public function _initModuleRoutes()
{
$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(
'admindev/:action/*',
array(
'module'=>'admin',
'controller'=>':controller',
'action'=>':action'
)
);
$router->addRoute('admin',$route);
return $router;
}
全心全意,
答案 0 :(得分:1)
您没有在路线中指定:controller参数。
尝试这样:
public function _initModuleRoutes()
{
$this->bootstrap('FrontController');
$frontController = $this->getResource('FrontController');
$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(
'admindev/:controller/:action/*',
array(
'module'=>'admin',
'controller'=>':controller',
'action'=>':action'
)
);
$router->addRoute('admin',$route);
return $router;
}
使用application.ini配置也可以达到相同的效果:
resources.router.routes.admindev.type = "Zend_Controller_Router_Route"
resources.router.routes.admindev.route = "/admindev/:controller/:action/*"
resources.router.routes.admindev.defaults.module = "admin"
其他application.ini提示和技巧here