A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Tutoriais e Programação

O arquivo .htaccess

Seg

26

Fev

2007


21:03

(35 votos, média 4.49 de 5) 


Documentos de erro

Provavelmente a aplicação mais conhecida do arquivo .htaccess seja direcionar usuários para páginas de erro personalizadas. Digamos que um usuário solicite uma página inexistente - ele recebe a página padrão do sistema do seu servidor avisando-o do ocorrido. Para personalizar seu site, é possível criar suas próprias páginas de erro e, quando for o caso, direcionar os usuários para elas.

Para criar suas próprias páginas de erro é necessário conhecer os códigos de erro retornados pelo servidor. Nas tabelas abaixo você encontra todos os códigos de erro atualmente padronizados. É claro que não há necessidade de fazer páginas para cada um deles... na verdade, você nem deveria. Um documento de erro para o código 200 causaria um loop infinito cada vez que uma página fosse encontrada - uma nhaca!

Erros de Requisições de Cliente
400Requisição viciada (Bad Request) 408Requisição com tempo vencido (Request Timed Out)
401Requer autorização (Authorization Required) 409Requisição conflitante (Conflicting Request)
402Requer pagamento (Payment Required) *ainda não usada 410Acabou (Gone)
403IProibido (Forbidden) 411Requer comprimento do conteúdo (Content Length Required)
404Não encontrado (Not Found) 412Falha na precondição (Precondition Failed)
405Método não permitido (Method Not Allowed) 413Entidade requerida muito longa (Request Entity Too Long)
406Não aceitável (codificação) (Not Acceptable (encoding)) 414URI requerida muito longa (Request URI Too Long)
407Requer autenticação proxy (Proxy Authentication Required ) 415Tipo de mídia não suportado (Unsupported Media Type)
Requisições de Cliente bem sucedidas
200OK
201Criado (Created)
202Aceito (Accepted)
203Informação não autorativa (Non-Authorative Information)
204Sem conteúdo (No Content)
205Conteúdo resetado (Reset Content)
206Conteúdo parcial (Partial Content)

Requisições de Cliente redirecionadas
300Escolhas múltiplas (Multiple Choices)
301Mudado permanentemente (Moved Permanently)
302Mudado temporariamente (Moved Temporarily)
303Veja outras (See Other)
304Não modificado (Not Modified)
305Use Proxy (Use Proxy)

Erros do Servidor
500Erro interno do servidor (Internal Server Error)
501Não implementado (Not Implemented)
502Gateway viciado (Bad Gateway)
503Serviço não disponível (Service Unavailable)
504Gateway com tempo vencido (Gateway Timeout)
505Versão HTTP não suportada (HTTP Version Not Supported)

Geralmente cria-se documentos de erro para os código 404 e 500, para páginas não encontradas e para poder controlar erros internos do servidor em scripts que estejam sendo utilizados. Também é interessante personalizar o erro 401 - Autorização Requerida - quando se tem áreas protegidas e o erro 403 - Proibido - quando se tem arquivos com permissão de uso bloqueada. Outra possibilidade seria tratar o erro 400 - Requisição Viciada - para capturar erros em scripts ou URLs malucas que um usuário possa tentar usar.

Para especificar seus próprios documentos de erro, tudo o que você precisa é adicionar a seguinte diretriz, em UMA LINHA, no seu arquivo .htaccess:

ErrorDocument code /diretorio/nomearquivo.ext

    ou

ErrorDocument 404 /erros/naoencontrado.html

    e, de forma análoga,

ErrorDocument 500 /erros/errointerno.html

Pode-se usar qualquer nome para os documentos de erro - para facilitar, recomendo que lembrem a função dos mesmos - e colocá-los em qualquer diretório que seja acessível pela web através de uma URL. A primeira barra corresponde ao diretório raiz do site. Pessoalmente prefiro mantê-los num diretório próprio para facilitar a manutenção e para poder controlar spiders indexando estas páginas através de um arquivo ROBOTS.TXT.

Na hipótese de capturar todos os erros acima mencionados e direcionar o usuário para páginas específicas, o arquivo .htaccess teria a seguinte configuração:

ErrorDocument 400 /erros/request.html
ErrorDocument 401 /erros/authreqd.html
ErrorDocument 403 /erros/forbid.html
ErrorDocument 404 /erros/notfound.html
ErrorDocument 500 /erros/serverr.html

Não se esqueça de que cada diretriz precisa estar numa linha única própria. Pode-se também especificar um endereço URL completo, como por exemplo http://seusite.com/erros/notfound.html, apesar de que a forma padrão é o endereçamento relativo como mostrado acima.

Acredite ou não, mas você também pode especificar HTML!

ErrorDocument 401 "

Você precisa SER um usuário registrado para ver esta página!

Observe que, logo no início do código HTML, existem aspas. Observe também que, no final do código HTML, não há aspas. É assim mesmo que deve ser feito e, lembre-se, tudo numa única linha sem word wrap! Apesar de existir esta opção, você tem muito mais controle sobre páginas de erro quando usadas em conjunto com xSSI, CGI ou ambos. Eu uso, por exemplo, uma página de erro 404 que, além da mensagem para o usuário, contém código PHP que me envia um e-mail com a indicação do documento faltante toda vez que uma página não é encontrada. Este código pode ser ativado/desativado com facilidade, assim posso monitorar o site pelo tempo que quiser.

Bem, para páginas personalizadas de erro isto é tudo. Experimente e divirta-se. É claro que um arquivo .htaccess com estas diretrizes deve ficar preferencialmente no diretório raiz para que possa capturar possíveis erros em qualquer setor do site.

Informações adicionais