Gestione degli errori 400 e 500 col Server Apache

In caso di errori si possono definire dei comportamenti per il server Apache, in particolare per gli errori della famiglia HTTP 4xx e 5xx.

Prima di tutto va attivata la direttiva errorlog anche se solitamente viene preconfigurata durante l’installazione di apache.

Il valore standard solitamente è: ErrorLog logs/error.log

Di default, se viene generato un errore,i appare un messaggio del server tipo:

“500 – Internal Server Error” oppure il classico “404 page not found”

Che informa di un errore del server che può essere dovuto a molti fattori oppure, nel secondo caso, che si sta cercando una risorsa che non esiste.

Si può modificare tale messaggio mediante la direttiva ServerSignature scegliendo tra una delle tre opzioni a disposizione: On/Off/Email.

Di default è impostata su On restituendo a fine pagina la versione del server ecc;

Mettendo Off invece si disabilita l’informazione a piè di pagina

In fine con EMail si attiva il link sul nome del server che riporta alla Email configurata in ServerAdimin.

Questo metodo è piuttosto tecnico e non garantisce un elevato livello di user-friendly.

Una scelta migliore è quella di definire una pagina di errore creata ad hoc per informare l’utente di cosa è successo, lasciandogli così una sensazione di minore gravità e la possibilità di continuare a navigare sereno nel sito.

Gli errori più frequenti sono della famiglia 4xx (risorsa non disponibile):

400: La richiesta non può essere soddisfatta dal server per via di un errore di sintassi.
401: Errore di sintassi o richiesta impossibile da soddisfare perché è stata richiesta l’autenticazione
dell’utente.
402: E’ richiesto un pagamento al fine di soddisfare tale richiesta.
403: La richiesta effettuata è proibita oppure non hai i permessi idonei per tale richiesta.
404: La richiesta non può essere soddisfatta in quanto il file richiesto non esiste.

Gli errori più frequenti sono della famiglia 5xx (errore interno del server):

500: Il server ha incontrato una condizione inaspettata.
501: Il server non sopporta il servizio richiesto.
502: Il server è temporaneamente sovraccarico di richieste da parte di altri utenti, provate a collegarvi tra qualche minuto.
503: Il server tentando di accedere ad altri servizi non ottiene alcuna risposta.

Gli errori elencati coprono la quasi totalità di quelli che si incontrano fruendo un sito web.

Un buon sito dovrebbe avere una pagina di errore ad hoc almeno per una delle due tipologie di errore.

Arriviamo al concreto, la sintassi per associare una pagina di cortesia ad un errore rilevato da Apache è la seguente:

ErrorDocument 400 http://tuoHost/errore/400.html
ErrorDocument 402 http://tuoHost/errore/402.html
ErrorDocument 403 http://tuoHost/errore/403.html
ErrorDocument 404 http://tuoHost/errore/404.html
ErrorDocument 500 http://tuoHost/errore/500.html
ErrorDocument 501 http://tuoHost/errore/501.html
ErrorDocument 502 http://tuoHost/errore/502.html
ErrorDocument 503 http://tuoHost/errore/503.html