diff --git a/nginx/snippets/custom_errors.conf b/nginx/snippets/custom_errors.conf index 29a4026..c2f5adb 100644 --- a/nginx/snippets/custom_errors.conf +++ b/nginx/snippets/custom_errors.conf @@ -1,31 +1,28 @@ # /etc/nginx/snippets/custom_errors.conf # # Define as páginas de erro personalizadas para todo o servidor. -# Este snippet deve ser incluído no bloco 'http' do seu ficheiro nginx.conf. +# Esta versão usa 'return' dentro de localizações nomeadas para gerar +# o conteúdo HTML dinamicamente, incluindo a URL que causou o erro. -# --- Mapeamento de Erros do Cliente (4xx) --- -error_page 400 /errors/4xx.html; -error_page 401 /errors/4xx.html; -error_page 403 /errors/403.html; -error_page 404 /errors/404.html; -error_page 405 /errors/4xx.html; -error_page 408 /errors/4xx.html; -error_page 413 /errors/4xx.html; -error_page 414 /errors/4xx.html; -error_page 429 /errors/4xx.html; +# --- Mapeamento de Erros --- +# Aponta cada erro para a sua respectiva localização nomeada. +error_page 403 @error403; +error_page 404 @error404; +error_page 500 502 503 504 @error5xx; -# --- Mapeamento de Erros do Servidor (5xx) --- -error_page 500 /errors/5xx.html; -error_page 502 /errors/5xx.html; -error_page 503 /errors/5xx.html; -error_page 504 /errors/5xx.html; - -# --- Localização para Servir as Páginas de Erro --- -# Esta localização especial é usada para servir as páginas HTML. -# A diretiva 'internal' garante que os utilizadores não consigam aceder -# a estas páginas diretamente (ex: /errors/403.html). -location /errors/ { - root /var/www/html; - internal; +# --- Localização Nomeada para o Erro 403 (Acesso Negado) --- +location @error403 { + return 403 '403 - Acesso Negado

403

Acesso Negado

Você não tem permissão para aceder ao recurso $request_uri.

Se acredita que isto é um erro, por favor, contacte o administrador do sistema.

'; } +# --- Localização Nomeada para o Erro 404 (Não Encontrado) --- +location @error404 { + return 404 '404 - Não Encontrado

404

Página Não Encontrada

O recurso $request_uri que você procurava não foi encontrado neste servidor.

Por favor, verifique o URL e tente novamente.

'; +} + +# --- Localização Nomeada para Erros de Servidor (5xx) --- +location @error5xx { + return 500 '500 - Erro Interno do Servidor

Erro no Servidor

Ocorreu uma Falha Inesperada

A nossa equipa técnica já foi notificada sobre este problema. Por favor, tente novamente mais tarde.

'; +} + +