将404错误重定向到自定义404页面

时间:2015-05-20 13:36:18

标签: redirect zend-framework routes http-status-code-404

我在Zend Framework 1项目中遇到了404页面的问题。

如果路由,操作或控制器错误,我的应用程序返回404错误。唯一的问题是我希望我的链接改变像www.exemple.com/error404.html这样的东西。所以我要说我有这个链接:

  

http://www.exemple.com/some/something/dfsf

我的应用程序返回404错误,但链接保持不变。我想从上面的链接重定向到:

  

http://www.exemple.com/error404

在我的ErrorController中,我有以下代码:

A = imread('coins.png');
imshow(A)
hROI = imfreehand(gca, 'closed', 1);
bw = createMask(hROI);
B = bwboundaries(bw);
B = B{:};
hold on
scatter(B(:,2), B(:,1),20, 'r', 'filled')

我尝试重定向到我创建的页面,但重定向代码为302,我需要404.

public function errorAction()
{
    $errors = $this->_getParam('error_handler');

    switch ($errors->type) {
        case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:
        case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
        case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:

            // 404 error -- controller or action not found

            $this->getResponse()->setHttpResponseCode(404);
            $this->view->message = 'Page not found';

            break;

    }
    $this->view->exception = $errors->exception;
    $this->view->request   = $errors->request;
}

谢谢!

1 个答案:

答案 0 :(得分:0)

404也不能是重定向,两者是互斥的。如果您只想渲染error404模板,请从错误控制器执行此操作(或修改现有错误操作模板)。

另请参阅Google关于软404的建议:https://support.google.com/webmasters/answer/181708