我正在使用 Zend FW 1.9.2,想要禁用默认路由并提供我自己的路由。我真的不喜欢默认的 /:controller/:action 路由。
这个想法是在初始化时注入路由,当请求无法路由到注入的路由之一时,它应该被转发到错误控制器。(通过使用默认注册 Zend_Controller_Plugin_ErrorHandler)
这一切都很好,直到我使用 $router->removeDefaultRoutes(); 禁用默认路由;当我这样做时,错误控制器不再将未路由的请求路由到错误控制器。相反,它将所有未路由的请求路由到默认控制器上的 indexAction。
任何人都知道如何禁用默认的 /:controller/:action 路由但保持路由错误处理?
基本上,这就是我所做的:
$frontController = Zend_Controller_Front::getInstance();
$router = $frontController->getRouter();
$router->removeDefaultRoutes(); // <-- when commented, errorhandling works as expected
$route = new Zend_Controller_Router_Route_Static(
'',
array('controller' => 'content', 'action' => 'home')
);
$router->addRoute('home', $route);