Zend Framework:如何禁用默认路由?

Mau*_*ice 6 routing zend-framework url-routing front-controller

我花了很多时间试图让它发挥作用.我变得非常绝望.如果有人可以帮助我:)会很棒:)

目前正在使用Zend Framework 1.9.5,尽管我一直在努力让这个版本适用于许多版本.

我想要做的是通过XML配置提供我自己的路线,并确保其一切不是在我的配置定义最终会在我的errorController.(优选的方式,所以我可以EM除了EXCEPTION_NO_CONTROLLEREXCEPTION_NO_ACTION)

我想这意味着我必须摆脱默认的/:module /:controller /:action和/:controller /:action routes.

因此,当我告诉路由器删除DefaultRoutes()时,它将不再匹配这些默认路由.但是现在路由器现在将每个未路由的路由路由到defaultcontroller :: defaultaction(什么??)

$front->getRouter()->removeDefaultRoutes();
Run Code Online (Sandbox Code Playgroud)

那么,任何人都知道如何在无法路由URI时使前控制器(或其中的一部分)抛出异常?

我想这样做的原因是为了防止重复内容,并且有更好的404页面(在这种情况下,没有控制器/没有操作错误实际上是应用程序错误而不是未找到)

pro*_*son 5

你尝试添加新的路线吗?

$route = new Zend_Controller_Router_Route('*', array('controller'=>'error', 'module'=>'default', 'action'=>'error'));


$router->addRoute('default', $route);
Run Code Online (Sandbox Code Playgroud)

您需要先添加此路由,因为它需要是最后一次处理.