Contrariamente a quanto si pensi, utilizzando la gestione degli errori di ASP.NET non viene inviato al browser un codice di errore 404, che indica file non trovato, ma un 200 OK, che è quello di default. Questo perchè in caso di errore viene fatto il redirect ad una pagina custom, che altro non è che una normale pagina ASP.NET.
Per ovviare a questo problema ed evitare che i motodi di ricerca continuino ad indicizzare contenuti che in realtà non sono disponibili è sufficiente modificare le header della risposta, utilizzando questo codice:
Response.Status = "404 Not Found";
Se invece si ha necessità di fare in modo che in seguito ad una particolare situazione all'interno del codice venga generato un errore di tipo 404 (ma la tecnica vale per qualsiasi codice di errore), allora è necessario scatenare un'eccezione di tipo HttpException, che ovviamente non va inclusa all'interno di un blocco try...catch, altrimenti non potrebbe essere propagata ed intercettare da ASP.NET, che provvederà a richiamare la pagina di errore impostata nel web.config:
throw new HttpException(404, "Not Found");
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.