- Home
- Categorie
- Coding e Sistemistica
- Coding
- ModRewrite e gestione errore personalizzata (404)
-
ModRewrite e gestione errore personalizzata (404)
Ciao a tutti,
sto usando il mod rewrite su un sito nel quale quando viene chiamata es:
"pagina.html" l'htaccess richiama "pagina.php?param=pagina"
qundi il nome della pagina è in realtà il parametro usato dallo script php.
In una situzione così non c'è mai il 404 perchè qualunque cosa si scriva questa viene passata come parametro alla pagina php effettiva.
Visto che il parametro è usato in una query mi basta fare il controllo sul risultato della query x decidere se la pagina esiste veramente (quindi se il link è corretto). Nel caso in cui la query non dia risultato ci troverremmo difronte a un 404 (cosa che non avviene perchè comunque vienve chiamata la "pagina.php")
Io ho risolto così:
-
Ho creato una pagina semplicissima di errore (404) personalizzata: errore.html
-
dentro a pagina php se la query effettuata con il parametro passato non da risultati faccio:
header("Status: 404 Not Found"); include("errore.html"); exit();
in questo modo invio come codice il 404 e posso gestire una pagina personalizzata d'errore
La domana è: qualcuno sa se questo è il modo giusto? Guardano gli header che si passano client e server mi sembra tutto ok, però è la prima volta che provo...
PS
Al posto di :
header("Status: 404 Not Found");ho provato anche :
header ("HTTP/1.0 404 Not Found");ma il server invece di rispondere : "404 No Found" rispondevea "404 OK" (poco sensato)
Attendo vostre considerazioni
-
-
Il ragionamento non fa una piega, veramente ottimo. Anche nel codice non mi sembra ci siano problemi evidenti.
-
integro il post precedente
il file errore.html conviene sostituirlo con un php, così il comando
header("Status: 404 Not Found");
viene messo direttamente li
Poi nel file si può far scrivere nel db il referer per scovare i broken link