读书人

zend 404处置

发布时间: 2012-10-20 14:12:47 作者: rapoo

zend 404处理
zend framework控制404
大概有这么几种情况:

1、假如用户输入不存在的新闻id,而url结构正确,控制器和action都存在。
则程序员需要手动跳转到一个错误页面(您要找的页面不存在),最终返回给用户的http响应码是404。

2、假如用户输入不存在 的控制器名或action名,则程序需要跳转同上那个页面,响应码也是404。

3、假如程序本身有错误,执行时应该显示错误。让程序员能够准确定位。如果部署到服务器上的时候,则应该不显示任何错误。什么响应码无关紧要。


这么多情况中,web服务器的设置如apache不需要任何改动。
php.ini则需要满足第3种情况。

为满足第2种,需要添加一个ErrorController




为了满足第一种情况,需要再编写方法,提示给用户的内容应该尽量与页面不存在的模版完全一样。

当数据库里找不到新闻时,代码类似如下
可以考虑换一个控制器
    //该方法模拟找不到新闻时的场景,如果    public function test2Action()    {                $response = $this->getResponse();        $this->_helper->viewRenderer->setNoRender();        $this->_forward('/tool/test3');//如果使用了模块,可以再带上模块名    }        //该方法是    public function test3Action()    {        $this->_helper->viewRenderer->setNoRender();        //只要是这个页面的输出,都是404        $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');        echo "这是新闻找不到的错误页面";//可以设法让其显示的跟前面的页面一样    }

读书人网 >编程

热点推荐