Allora vediamo un po’ , prima di tutto cosa si può fare con il cambio messaggi errori di Apache2 .Premetto che ho avuto la possibilità di provarlo solo sotto Ubuntu 6.10 .
Supponiamo di volere raggiungere la pagina www.nomesito/nomepaginanonesistente , il sito ci risponderà con il classico errore404.
La risposta di errore si può modificare in tre modi :
-
Redirect verso un altro sito
-
Messaggio personalizzato
-
Modifica della pagina predefinita
Vediamo come si può fare . Prima di tutto bisogna cercare il file apache2.conf (da terminale sudo nano /etc/apache2/apache.conf o in alternativa se si preferisce si può sostituire a nano gedit) e selezionare la riga :
ErrorDocument 404 /HTTP_NOT_FOUND.html.var
- Soluzione 1 ,redirect verso un sito , modificare la linea selezionata ErrorDocument in : ErrorDocument 404 http://www.nomeredirect.com , in questa maniera ogni accesso ad un file non raggiungibile sarà rediretto verso http://www.nomeredirect.com
- Soluzione 2 , ovvero mostrare semplicemente un messaggio all’interno della pagina in cui si dice ad esempio ” Il servizio temporaneamente non è disponibile”. Per fare questo occore modificare la riga in :
ErrorDocument ” Il servizio temporaneamente non è disponibile”
In questa maniera in ogni pagina internet non raggiungibile sarà mostrato il contenuto del testo presente tra le due ” “.
- Soluzione 3 , ovvero la più difficile , modificare la pagina preesistente o crearne una nuova. Allora , prima di tutto leggendo i commenti nel file apache2.conf c’è scritto che è possibile creando un alias di una cartella nuova redirigere gli errori verso delle pagine personalizzate che risiedono su un’ altra cartella (che non sia quella di root del sito ), beh purtroppo le ho provate tutte e devo dire che non sono riuscito a farcela.
L’unico modo in cui si può ovviare a questo è :
- Modificare la pagina di errore di apache predefinita
- Inserire la pagina modificata o crearne una nuova con lo stesso nome all’ interno della directory root del sito ( o del Virtual Host )
Per il punto uno si deve aprire con un editor di testi ( io ho usato Kate in quanto molto comodo per il riconscimento dei tag e dei linguaggi … ) e modificare il file . C’è da tenere conto del linguaggio con cui i client accederanno alla pagina . Se ad esempio il linguaggio che usano i client che si connettono alla pagina è italiano , bisognerà modificare all’interno del file (vostra directory error apache o altrimenti quella predefinita ) /usr/share/apache2/error/HTTP_NOT_FOUND.html.var il testo sotto Content-language: it a proprio piacere . Conviene anche magari modificare la parte relativa a Content-language: en . In questo modo a seconda del language utilizzato dai client in ogni pagina non trovata verrà mostrato il conentuto di quello che avete modificato in : Content-language: nomelingua
In questo caso quindi la vostra riga sarà :
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
Per il punto due , l’unica maniera in cui sono riuscito a dire ad Apache di non usare lo standard error message è il redirect verso la cartella dove è situato il sito di default .
Quindi all’interno del sito di defualt posizionare il file HTTP_NOT_FOUND.html.var e modificare la linea ErrorDocument in questa maniera:
ErrorDocument 404 /HTTP_NOT_FOUND.html.var
Il nome del file deve essere uguale a quello standard . Non c’è modo di cambiarlo in uno diverso , sia all’interno della DocumentRoot sia nella cartella di errori di Apache .
Ovviamente tutto questo discorso può essere esteso anche agli altri errori.
Dopo ogni modifica sul file apache.conf riavviare il servizio da terminale :
sudo /etc/init.d/apache2 restart
Come lettura consiglio le pagine ufficiali : 1 – 2