如何处理 404 自定义页面(以及可能的其他错误)?
我只是尝试在路由部分添加
GET /@codes /WebController->error
我的 Class WebController 处理错误的地方,对于 404 我解决了(部分)。实际上它适用于
http://mydomain.ext/itdoesntexists
但如果我记得一个
http://mydomain.ext/sub/maybe_another_sub/and_so_on/doesnt_exist
我的路线(当然)行不通。
顺便说一句,在每种情况下,这条路线都不会推送 404 标头(只是一种疯狂的想法,我正在考虑 Google 寻找资源,但它没有收到“纯粹的”404)。
谢谢
您不必为此定义路线。 F3 将为任何未定义的路由自动生成 404 状态代码。
如果要定义自定义错误页面,则需要设置 ONERROR 变量。
这是一个简单的例子:
$f3->route('GET /','App->home');
$f3->set('ONERROR',function($f3){
echo \Template::instance()->render('error.html');
});
$f3->run();
error.html 定义为:
<!DOCTYPE html>
<head>
<title>{{@ERROR.text}}</title>
</head>
<body>
<h1>{{@ERROR.text}}</h1>
<p>Error code: {{@ERROR.code}}</p>
</body>
</html>
现在,如果您调用任何未定义的路由(例如 /foo),模板 error.html 将使用 404 状态代码呈现。
注意:这适用于其他错误代码。其他错误代码由 F3 或您的应用程序使用以下命令触发$f3->error($status)
, $status 是任何有效的 HTTP 状态代码(404、500、403 等...)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)