十月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分别是啥意思?