2009-06-29 7 views
2

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!

Répondre

0

pour faire une très longue histoire courte, voici la chose:

1) configurer IIS afin que les erreurs 404 vont à « default.aspx » 2) créer une page qui gère en fait ce que vous voulez gérer.

liens de référence, originaux: NRS

http://sdn5.sitecore.net/upload/sitecore6/handling_http_404_a4.pdf http://sdn.sitecore.net/upload/sitecore6/dynamic_links_a4.pdf

+0

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

+0

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. –