你好我在Zend工作。我想知道一些关于未定义URL处理的事情。我有一个像http://localhost/concierge/login
这样的网址,它在网址规则文件中有以下规则。
'admin/login' =>array('login', array('module'=>'admin','controller' => 'index','action' => 'login'),array(),'login'),
。一切正常。
但是,如果更改我未定义的http://localhost/concierge/lgin
之类的网址,则会转到显示空数组并显示Page not Found
的空白页面。它看起来很糟糕。我想知道用户是否在网址中写错任何内容,我的应用应该显示404 error
。
现在我想知道如何实现我的任务?我是否必须为url规则文件定义其他规则来处理所有这些错误?如果是这样,这个网址规则会如何?对于控制器我该怎么办?有什么帮助吗?
答案 0 :(得分:1)
我使用前端控制器插件的preDispatch挂钩来完成此操作。
public function preDispatch(Zend_Controller_Request_Abstract $ request){ $ disp = Zend_Controller_Front :: getInstance() - > getDispatcher();
if ( !$disp->isDispatchable($request) ) {
$request->setModuleName('default');
$request->setControllerName('error');
$request->setActionName('error404');
}
}
如果该东西不存在(/ registerxxx而不是/ register for 例子)然后他们被反弹到404页面。到目前为止,它对我有用。