0

在 Bootstrap.php 中,我有一些使用 Zend_Controller_Router_Route_Regex 的自定义路由。一切正常,除非用户在地址栏中输入错误的链接。

前任 :

http://mysite/en/1-some-article.html=> 这是与 Bootstrap 中的 ROUTE 匹配的有效链接。

但是当用户犯了一个错字时,比如:

http://mysite/en/1-some-article.**html'** or http://mysite/en/1-some-article.**hhtml**,它们与 Bootstrap 中的任何 ROUTE 都不匹配,然后 Zend Framework 会抛出一个异常,例如:No route matching the request

有没有办法处理它,比如重定向到“没有匹配的路由”的自定义页面?

任何帮助将不胜感激。感谢提前!

配置(来自下面的评论

[production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
phpSettings.date.timezone = "Europe/London"
;includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
appnamespace = ""
;resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.frontController.params.displayExceptions = 0
resources.frontController.moduleDirectory = APPLICATION_PATH "/modules"
resources.modules = ""
autoloaderNamespaces.Fxml = "Mycms_"
autoloaderNamespaces.Fxml = "Fxml_"
4

1 回答 1

0

要使用ErrorController,您需要将前端控制器throwExceptions属性设置为false。把它放在你的[production]配置部分

resources.frontController.params.throwExceptions = 0

请参阅http://framework.zend.com/manual/1.12/en/zend.controller.exceptions.htmlhttp://framework.zend.com/manual/1.12/en/zend.controller.plugins.html#zend .controller.plugins.standard.errorhandler.fourohfour

我在上面的评论中提到了这一点,但您似乎错过了它(您已displayExceptions设置为false但未设置throwExceptions)。

于 2012-11-01T05:31:34.113 回答