J'utilise un site Web CMS Sitefinity sur IIS 7. Je vois quelques résultats bizarres lorsque j'essaie de retourner un statut 404.IIS 7 Codes d'erreur
Si je vais à une URL comme:
www.mysitefinitywebsite.com/test.co.uk (Je sais que cela est une adresse invalide, mais quelqu'un est entré dans le CMS)
Comme le ci-dessus n'est pas une page ASPX, je crois que IIS gère l'erreur, avec le code suivant:
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/404.aspx" responseMode="ExecuteURL" />
</httpErrors>
l'URL dans la barre d'adresse reste la même, ma page 404 de la page (/404.aspx) est affiché, cependant, un code d'état http 200 est renvoyé.
Si toutefois l'adresse suivante est tapé dans:
www.mysitefinitywebsite.com/test.aspx - le gestionnaire d'erreurs ASPX démarre avec la configuration suivante:
<customErrors mode="On" >
<error redirect="~/Sitefinity/nopermissions.aspx" statusCode="403" />
<error redirect="~/404.aspx" statusCode="404" />
</customErrors>
Encore une fois, ma 404 page est affichée, mais l'URL change dans la barre d'adresse:
www.mysitefinitywebsite.com/404.aspx?aspxerrorpath=/test.aspx
Et étrangement, si je vérifie Firebug, un code 302 est renvoyé pour text.aspx, puis un statut de 200 pour /404.aspx?aspxerrorpath=/test.aspx.
Je ne comprends pas complètement ce qui se passe ici, il semble que IIS ne répond pas du tout avec le code d'état - est-ce par conception? Semble complètement fou!
Si c'est par conception, la seule façon de le résoudre est probablement de retourner par programme le code de réponse correct?
Merci à l'avance higgsy