Páginas de erro
Aprenda como personalizar páginas de erro para rotas não encontradas, modo de manutenção e erros de redirecionamento interno fornecidos pelo servidor.
Personalizando a página de erro
Para personalizá-lo, você pode editar o system/error.php arquivo. Este arquivo só é acionado nas seguintes condições:
- O IIS realiza um redirecionamento de erro interno através de
<error statusCode="..." ... />. - O Apache realiza um redirecionamento de erros interno através de
ErrorDocument. - O nginx realiza um redirecionamento de erro interno através de
error_page. - Nenhuma rota corresponde à solicitação HTTP atual (código de status 404).
- Uma rota existente foi acessada, mas o método solicitado não está definido (código de status 405).
- O modo de manutenção está ativado (código de status 503).
No system/errors.php arquivo, você pode configurar sua View para personalizar uma página de erro como esta:
<?php
use Inphinit\App;
use Inphinit\Http\Request;
use Inphinit\Http\Status;
use Inphinit\Viewing\View;
switch ($code) {
case 403:
// system/views/errors/403.php
View::render('errors.403');
break;
case 503:
// system/views/errors/503.php
View::render('errors.503');
break;
default:
// system/views/errors/generic.php
View::render('errors.generic', ['code' => $code]);
}
Possíveis códigos de status
Além do código 404 (na ausência de uma rota correspondente) e do 503 (modo de manutenção), os outros códigos que podem ser recebidos na variável $code são 403 e 500, devido às configurações padrão nos arquivos .htaccess, web.config ou nginx.
Padrão .htaccess
# Redirect page errors to route system
ErrorDocument 403 /index.php/RESERVED.INPHINIT-403.html
ErrorDocument 500 /index.php/RESERVED.INPHINIT-500.html
Padrão web.config
<error statusCode="403"
responseMode="ExecuteURL"
path="/index.php/RESERVED.INPHINIT-403.html?INPHINIT_REDIRECT=1" />
<error statusCode="500"
responseMode="ExecuteURL"
path="/index.php/RESERVED.INPHINIT-500.html?INPHINIT_REDIRECT=1" />
Você pode adicionar outros códigos de status que são comumente encontrados em seu servidor.