Gestion des pages d’erreurs 404 en asp.net

Comment faire pour obtenir une vraie page 404 avec un code de réponse à 404 et non en 200.

Deux étapes :

1/ Il faut ajouter ces lignes dans le fichier web.config :

<httpErrors errorMode= « Custom » existingResponse= « Replace » >
<remove statusCode= « 404 » subStatusCode= « -1″ />
<error statusCode= « 404 » path= « /Errors/Erreur404″ responseMode= »ExecuteURL » />
</httpErrors>

Ces lignes sont à mettre entre les balises <system.webServer> et </system.webServer>

Cela permet de rediriger les erreurs 404.
Il faut ensuite faire en sorte que la page d’erreur renvoie le bon en-tête.

2/ Modifier le code de la page d’erreur
Pour cela, il faut ajouter ces lignes dans le code (dans le controller ou dans la page aspx.cs) :
Response.Status = « 404 not found »;
Response.StatusCode = 404;

Avec ces deux opérations, le serveur affiche la page d’erreur et renvoie bien un en-tête en 404.

Il est possible de faire exactement de la même chose avec les différents codes d’erreur (500,505,etc…)

Partager cet articleTweet about this on TwitterShare on FacebookShare on Google+Email this to someone

2 Responses

  1. yetaland dit :

    Merci beaucoup pour l’astuce, c’est vraiment très pratique et simple à mettre en place.

  2. guicherd dit :

    Merci Maxime, c’est une bonne actualisation d’un vieux post et un sujet pas si simple sur IIS… pour Google nous aime bien

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Un projet, des idées, des envies, des questions? Contactez-nous