十月CMS 401、402、403、503、400错误代码处理

Posted

技术标签:

【中文标题】十月CMS 401、402、403、503、400错误代码处理【英文标题】:OctoberCMS 401, 402, 403, 503, 400 error code handling 【发布时间】:2018-10-22 13:09:53 【问题描述】:

我只想问一下octobercms是否只能设置两种类型的错误???

    404 [通过使用 /404 url​​ 创建页面]

    500 [通过使用 /error url 创建页面]

我们如何设置 400、401、402、403、503、400 等??????

【问题讨论】:

【参考方案1】:

这两种情况是作者已经在Cms Main Controller 中编写代码但对于其他人我们需要自己编写代码的特殊情况:)

嗯,都与HttpException有关,所以这是我们实际设置和抛出的代码,

App::abort(403, 'Access is forbidden to the requested page.' /* message */);

现在这些都是HttpException,我们可以使用App::error拦截它们。您需要将此代码添加到您的 plugin boot 方法中。

//\App::error(function(\Exception $exception)  // for handling all Exceptions

// for handling http related exceptions
\App::error(function(
    \Symfony\Component\HttpKernel\Exception\HttpException $exception) 

    dd($exception->getStatusCode()); /* 403 */ // 400, 401, 402, 403, 503, 400 etc            
    // Handle the exception...
);

您可以在此处查看status-code 并根据需要处理它们。 参考:https://octobercms.com/docs/services/error-log#http-exceptions

【讨论】:

【参考方案2】:

如果有人仍然对将状态代码传递到错误页面有疑问,只需将其添加到 Plugin.php 中的 boot 方法中

App::error(function(\Symfony\Component\HttpKernel\Exception\HttpException $exception) 
    $controller = new \Cms\Classes\Controller(\Cms\Classes\Theme::getActiveTheme());
    $controller->setStatusCode($exception->getStatusCode());
    return $controller->run('/error');
);

并使用检查/error 上的状态码

% if this.controller.getStatusCode() == 403 %

【讨论】:

以上是关于十月CMS 401、402、403、503、400错误代码处理的主要内容,如果未能解决你的问题,请参考以下文章

http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码

在HTTP1.0协议中,401、402、403、404分别是啥意思?

Day400&401&402.商品服务 -谷粒商城

浏览器常见状态码403,302

关于HTTP中40X和50X的问题(介绍,可根据介绍找出问题解决方案)

关于HTTP中40X和50X的问题(介绍,可根据介绍找出问题解决方案)