Guia do Linux/Avançado/Apache/Definindo documentos de erro personalizados

Origem: Wikilivros, livros abertos por um mundo aberto.
Saltar para a navegação Saltar para a pesquisa

Definindo documentos de erro personalizados[editar | editar código-fonte]

Documentos de erros personalizados são definidos através da diretiva ErrorDocument. É possível especificar códigos de erros que serão atendidos por certos documentos ou colocar esta diretiva dentro de blocos de controle de acesso <Directory>, <Location> ou <VirtualHost> para que tenham mensagens de erro personalizadas, ao invés da padrão usada pelo servidor httpd. ErrorDocument [código de erro] [documento] Onde:

  • código de erro
    Código de erro da mensagem (veja [#s-s-apache-httpcodes Códigos HTTP, Seção 12.15] como referência). O código de erro 401 deve referir-se a um arquivo local.
    documento
    Documento, mensagem de erro ou redirecionamento que será usado no servidor caso aquele código de erro seja encontrado:

Para definir uma mensagem de erro padrão para todo servidor web, basta colocar a diretiva ErrorDocument fora das diretivas que controlam o acesso a diretórios e virtual hosts (o inicio do arquivo httpd.conf é ideal). Exemplos:

    • ErrorDocument 404 /cgi-bin/erros404.pl - Direciona para um script em Perl que manda um e-mail ao administrador falando sobre o link quebrado e envia o usuário a uma página de erro padrão.
    • ErrorDocument 404 /naoencontrada.html - Direciona o usuário para o arquivo naoencontrada.html (dentro de DocumentRoot) quando ocorrer o erro 404. Note que o diretório / levado em consideração é o especificado pela diretiva DocumentRoot.
    • ErrorDocument 500 "Erro Interno no servidor" - Mostra a mensagem na tela quando ocorrer o erro 500.
    • ErrorDocument 401 /obtendoacesso.html - Direciona o usuário ao arquivo explicando como obter acesso ao sistema.
    • ErrorDocument 503 http://www.guiafoca.org/servicos.html - Redireciona o usuário a URL especificada.
    • ErrorDocument 403 "Acesso negado" - Mostra a mensagem na tela no caso de erros 403.