Voici donc le problème. Nous exécutons Sitecore, qui effectue la réécriture d'URL, et permet à quelque chose comme example.com/Folder/Page.aspx d'être une URL correcte. Maintenant, "Folder" n'existe pas réellement sur le système de fichiers, et "Page.aspx" non plus. Mais le travail de ces URL, car ASP.NET fait ce qu'il est censé faire. Bon, alors maintenant, je vais essayer d'aller sur une page web qui n'existe pas comme example.com/idontexist.html. Cela n'existe pas dans le système de fichiers, et n'utilise pas ASP.NET pour résoudre le fichier, alors nous obtenons une erreur IIS7 404.IIS7 redirection d'URL personnalisée ne fonctionne pas avec des fichiers non-physiques
Maintenant, je veux changer la page d'erreur 404 en une page d'erreur personnalisée, en utilisant une URL. Dites, l'URL est example.com/ErrorPage.aspx. Cette page est en fait, pas une page physique, mais un élément dans Sitecore.
Dans la configuration d'erreur personnalisée dans le Gestionnaire des services Internet, j'essaie de modifier l'erreur 404 pour pointer vers un "URL Redirect" et j'utilise "/ErrorPage.aspx" comme URL de redirection. Lorsque j'essaie d'aller à une URL qui n'existe pas, IIS7 explose en disant qu'il ne peut pas trouver /ErrorPage.aspx.
Dans IIS6, ce n'est pas un problème et tout fonctionne correctement. Mais sur IIS7, je redirige vers une URL qui n'est pas physiquement sur le serveur.
Aide!
D'accord, la manipulation http 404 PDF était une véritable aide. J'ai ajouté le processeur dans le pipeline, et cela a semblé faire l'affaire. Le problème que je suis maintenant confronté est que dans IIS, pour les éléments non asp.net comme http://www.example.com/text.txt, si ce fichier texte n'est pas là, j'ai essayé de mapper l'erreur personnalisée Exécuter l'URL /Default.aspx, mais cela m'a donné une erreur. Il semble que toute extension * .aspx que j'ajoute dans la fonctionnalité d'erreur personnalisée dans IIS renvoie une erreur générique 404. – Pete
Oui, IIS ne serait normalement pas impliqué dans des extensions non-ASP connues. Vous pouvez soit A) les mapper, de sorte que .HTML, .TXT et ainsi de suite vont aux gestionnaires .NET comme .aspx et .asmx et ainsi de suite - ou B) Activer le pipeline intégré (IIS7 seulement) qui impliquerait ASP.NET dans toutes les demandes de page. Les deux options viennent cependant avec quelques mises en garde. –