你好,我在Zend工作。我想知道一些关于未定义的URL处理的事情。我有一个像http://localhost/concierge/login这样的url,它在url规则文件中有以下规则。
'admin/login' =>array('login', array('module'=>'admin','controller' => 'index','action' => 'login'),array(),'login'),。这一切都很好。
但是,如果更改url,比如我还没有定义的http://localhost/concierge/lgin,它将转到一个空白页面,其中显示一个空数组,并写入Page not Found。看起来很糟糕。我想知道如果用户在url中写错了什么,我的应用程序应该显示404 error。
现在我想知道如何才能完成我的任务?我是否必须为url规则文件定义另一个规则来处理所有这些错误?如果是这样的话,这个url规则会是什么样子呢?对于控制器,我应该怎么做?有什么帮助吗?
发布于 2013-02-04 16:01:26
我使用前端控制器插件的preDispatch钩子来做这件事。
公共函数preDispatch(Zend_Controller_Request_Abstract $request) { $disp = public
if ( !$disp->isDispatchable($request) ) {
$request->setModuleName('default');
$request->setControllerName('error');
$request->setActionName('error404');
} }
如果这个东西不存在(比如/registerxxx而不是/register ),它们就会跳转到404页面。到目前为止,它对我来说是有效的。
https://stackoverflow.com/questions/5932905
复制相似问题