zend未定义的URL处理

时间:2011-05-09 05:31:49

标签: zend-framework url-routing

你好我在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规则文件定义其他规则来处理所有这些错误?如果是这样,这个网址规则会如何?对于控制器我该怎么办?有什么帮助吗?

1 个答案:

答案 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页面。到目前为止,它对我有用。