La configuration personnalisée ASP page 404 avec redirection de site web IIS7
Nous sommes migrer un site web à partir d'IIS6 à IIS7, mais éprouvent certaines difficultés dans la mise en place de la page d'erreur 404. Nos 404-errorpage fonctionne comme ceci:
- Personnalisé ASP-page vérifie l'URL à l'encontre d'une courte liste de "spécial" de l'Url (par exemple http://example.com/limited-offers).
- Si l'URL est connue, il redirige vers l'URL de la page.
- Sinon, le visiteur est redirigé vers une statique errorpage avec un 404-statuscode.
Avec IIS6 cela a fonctionné comme annoncé, mais avec IIS7 certaines choses ont changé. IIS7 sera toujours afficher la configuration de la errorpage lorsqu'il rencontre un statuscode pour qui un errorpage est défini. Dans le cas de nos statique errorpage avec 404-statuscode, cela signifie que IIS7 va exécuter la coutume ASP-page à nouveau. Cela mène à l'infini de la redirection.
Nous avons découvert que ce problème peut être contourné par l'ajout d'un paramètre dans le Web.Config
<system.webServer>
<httpErrors existingResponse="PassThrough" />
</system.webServer>
Cependant, après l'ajout de cette mesure ASP-page refuse de redirection. Après vérification avec un violon, il semble que IIS7 les forces de l'404 statuscode, écrasement de nos redirection 302.
Peut-on recommander une autre approche pour résoudre notre problème?
OriginalL'auteur Arjen | 2011-05-16
Vous devez vous connecter pour publier un commentaire.
J'ai réussi à utiliser un programme d'installation qui j'ai migré à partir de IIS 6 pour IIS 7.
Mon web.config a la section suivante;
J'ai configuré ce sur le site via le Gestionnaire des services internet, mais vous pourriez le faire via le web.fichier de config si cela est plus facile pour vous.
Vous pouvez ajouter un en-tête conditionnel selon que devrait être 301, 302 ou 404.
404;
302 (temporaire direct);
301 (permanente re-direct);
IIS site du pool d'applications pipeline Intégré-mode. Et ci-joint les paramètres de débogage de l'article pour le site.
Ouais, désolé édité que peu dans. 302 ou 404 conditionnelle sur ce qui est fait dans le code.
C'est exactement ce que nous recherchons, mais ne peut pas le faire fonctionner. Avez-vous des paramètres dans IIS pour le site web ou l'application de la piscine? Par exemple, votre application utilisation de la piscine Classique ou pipeline Intégré-mode?
Les pools d'applications que nous utilisons sont pipeline Intégré-mode. Les piscines ont été créés et configurés automatiquement lors de la création de site par IIS - nous n'avons pas les modifier manuellement.
Nos pools d'applications sont en cours d'exécution dans le Classique du pipeline de la mode. Je vais vérifier pour voir si la modifier afin de l'Intégré fera la différence. Merci pour vos commentaires.
OriginalL'auteur Andy Davies
J'ai rencontré un scénario similaire pour un client, l'autre semaine. La solution a été de configurer votre
<httpErrors>
comme suit:Cela fonctionne avec Cactushop (écrit en ASP Classique), qui a "amicale" des url et où ils utilisent les 404 la page à analyser l'url et rendre les produits ou catégories de la liste des produits et ainsi de suite.
OriginalL'auteur Kev
Vous pouvez également regarder à l'aide de l'IIS addon module: URLRewrite. Cela vous permettra de configurer des SEO friendly URL. Vous trouverez peut-être ce quelque chose que vous voulez regarder pour améliorer votre demande d'aller de l'avant plutôt que comme une solution pour votre problème existant susceptible de nécessiter un peu de temps pour apprendre.
Il y a quelques excellents articles, tutoriels vidéo et des informations sur la façon d'utiliser cet outil.
OriginalL'auteur Andy Davies