Sur mon site, j'ai utilisé le module de réécriture d'URL de IIS7 pour rediriger des URL telles que http://mysite.com/File.aspx?Name=SomeName vers http://mysite.com/SomeName.Redirection personnalisée 404 pour un site avec réécriture d'URL
Il semble que IIS7 a créé une vérification de règle correspondante, de sorte que toute URL du type http://mysite.com/SomeURL est redirigée vers File.aspx. C'est correct dans la plupart des cas, lorsque l'URL est correctement réécrite. Le problème est que dans certains cas, le fichier n'existe plus - http://mysite.com/SomeName2 sera toujours redirigé vers http://mysite.com/File.aspx?Name=SomeName2. Je souhaite afficher une page d'erreur 404 personnalisée pour cette URL. Comment puis-je déclencher l'erreur 404 dans global.asax (j'ai défini la journalisation et la gestion des erreurs d'application dans global.asax)? Le code ci-dessous ne fonctionne pas.
Response.Status = "404 Not Found"
Response.AddHeader("Location", "http://mysite.com/Invalid-File.aspx?" & Request.QueryString.ToString)
Il affiche simplement la page d'erreur IIS 404 par défaut. Ajouter un customerror dans web.config n'aide pas.
Merci pour votre aide!
Pour une raison quelconque, la page ne redirige pas vers Invalid-File.aspx - la page File.aspx continue d'être affichée! Response.Redirect résultats dans la page redirigée ayant une erreur 302 :( –
Ceci est bizarre - sur l'utilisation de votre code, le contenu de la page affichée provient de File.aspx, mais les en-têtes indiquent le code comme 404, et l'emplacement comme Invalid -File.aspx! –
@Wild - Que voulez-vous * que le résultat soit? A 404 pour le client ne devrait pas se produire si vous redirigez vers le contenu réel, c'est ce que 301 ou 302 est pour. vous essayez de faire quelque chose de plus proche d'un 'Server.Transfer()' sur la réponse? –