Réécriture d'URL à partir de /par défaut.aspx /
Je suis en utilisant l'URL Rewriting.NET outil avec IIS 6. J'ai ma page par défaut de contenu par défaut.aspx dans IIS. Ce que j'essaie de faire est de /par défaut.aspx fournir une redirection 301 vers le répertoire racine (www.example.com/default.aspx -> www.example.com). J'ai essayé de désactiver par défaut des documents, en vain.
Ce que je veux faire est d'utiliser un couple de URL Rewriting.NET règles pour atteindre cet objectif. Toutes les pensées?
EDIT:
Désolé, j'ai oublié de préciser. Si j'ai de redirection à partir de /par défaut.aspx pour /avec les documents par défaut activé (je voudrais les laisser sur), puis-je obtenir une boucle infinie de défaut -> /-> valeur par défaut
OriginalL'auteur CodeMonkey1313 | 2009-03-26
Vous devez vous connecter pour publier un commentaire.
En fin de compte je me suis retrouvé à l'aide de IIS 7 avec le module de Réécriture d'URL, ce qui vous permet de le faire rediriger correctement.
Edit :
La règle est
vous pouvez le faire avec une règle distincte pour chaque dossier, ou vous pouvez utiliser
Je ne sais pas si "la mise à niveau vers IIS7' est vraiment une réponse à ce problème.
Merci pour le partage
Cela ne fonctionnera pas avec les publications... (vous allez être redirigé chaque fois que vous prenez un peu d'action que les POSTs de la page comme le bouton de la souris)
peut-être, mais je pense que cela dépendra de l'action sur la forme, si elle est définie par défaut.aspx ou / (ne peut pas dire à coup sûr, n'avaient pas eu besoin d'essayer ce niveau)
OriginalL'auteur CodeMonkey1313
Je suis tombé sur ce problème très un temps, tout en essayant de savoir pourquoi certains IIS s'installe serait de travailler en redirigeant le /par défaut.aspx et certains pourraient dégénérer en une boucle terminale.
J'ai trouvé la réponse a été de savoir si ou de ne pas asp.net a 'générique' lié à exécuter toutes les demandes dans IIS.
Mettre simplement, si vous avez un out-of-the-box de l'installation IIS, il sera toujours ajouter le document par défaut sur toute demande de la racine du site. Ainsi example.com devient example.com/default.aspx lorsque vous examinez la Demande.Url ASP.NET. Par conséquent, si vous détecter cette situation et essayer de rediriger loin et de retour à example.com, IIS ne sorte, ajoute le /par défaut.aspx et votre code est pris dans une boucle de sa propre fabrication.
L'exception à cette règle est si vous configurez mappage de caractères génériques, de sorte que toutes les demandes sont traitées par le biais de la asp.net pipeline. Dans ce cas, IIS n'est plus ajoute le document par défaut sur chaque demande à la Demande.Url niveau. Et ainsi, vous pouvez faire la redirection.
Je mets tout ça dans ce blog : 301 Redirection à partir de /par défaut.aspx à la racine du site - le mot de la fin - mais cela a été écrit il y a plusieurs années et les changements dans IIS7 peuvent avoir résolu le problème, comme actuellement accepté de répondre fournit.
Mais si vous êtes aux prises avec ce problème, puis, regardant le générique de cartographie de l'état est le bon endroit pour commencer.
OriginalL'auteur Bruce Chapman
J'ai eu le même problème. Pour ceux qui se demandent pourquoi quelqu'un voudrait faire cela, c'est une question de RÉFÉRENCEMENT. Si Google indexe votre page d'accueil avec et sans défaut.aspx à la fin, le PageRank et le lien popularité va être partagé entre les deux URL. Maintenant, si vous êtes confrontés à ce problème, et vous êtes en mesure de regrouper les deux URL, alors vous pouvez obtenir un coup de pouce dans les classements de recherche. Plus qu'une chose à garder à l'esprit est que si vous allez par le biais de la difficulté, vous DEVEZ utiliser une redirection 301 pour Google afin de consolider leur index entre les deux URL. Sinon, vos efforts seront vains.
C'est un peu trop tard puisque vous avez déjà résolu ce problème par la mise à niveau vers IIS7. Mais je vais juste ajouter que la seule solution à ce problème, je suis venu avec pour IIS6 est d'ajouter un filtre ISAPI.
J'ai documenté la solution complète ici...
http://swortham.blogspot.com/2008/12/redirecting-default-page-defaultaspx-to.html
OriginalL'auteur Steve Wortham
Si je vous comprends bien, vous ne voulez pas afficher par défaut.aspx' chaque fois que quelqu'un vient dans un dossier avec ce document.
Donc s'ils ne le frappez, vous souhaitez rediriger automatiquement vers le " /" et il suffit de charger le document par défaut de toute façon?
Si c'est le cas, comme indiqué ci-dessus, vous courez le risque d'une boucle infinie. Le deuxième commentaire, il vous donne une réponse, mais je suppose que l'expansion de cette à la ré-écrire le moteur de ce que vous voulez est de:
Désactiver par défaut les documents
S'inscrire à chaque dossier avec le ré-écrire moteur
Lorsque ce dossier est à la charge demandée par défaut.fichier aspx selon votre cible règle
Cela vous parait-il correct?
Je dois demander, pourquoi voulez-vous faire cela?
J'ai fait un peu juste du RÉFÉRENCEMENT, de la formation et de l'ouïe, ce qui semble étrange. Je serais surpris qu'un moteur de recherche comme Google ou MSN pénaliserait vous. Donc, je ne peux que deviner son de sorte que vous obtenez tous vos points de classement pour une url. Encore n'ai pas fait de SEO choses dans peu de temps donc c'est juste une supposition!
Comme je le comprends, ce n'est pas qu'il y a deux pages qui servent la même page, c'est que si les gens lien example.com et example.com/default.aspx je me suis dit qu'il étend la valeur des liens.
Vous êtes à droite, 2 pages avec le même contenu n'est pas aussi bonne que la 1 page: google.com/support/webmasters/bin/answer.py?answer=66359
OriginalL'auteur Simon
Je ne suis pas sûr de comprendre quel est le problème.
Bien que si vous désactivez les documents par défaut puis /il suffit de pointer vers le répertoire plutôt que la valeur par défaut.page aspx.
Laissez la valeur par défaut des documents sur et il suffit de faire une redirection selon que par défaut.aspx est dans l'url demandée ou non.
"faire une redirection selon que par défaut.aspx est dans l'url demandée": if(Request.Url.ToString().ToLower().IndexOf("par défaut.aspx") != -1) la réponse.redirect("/");
Cela résulte dans une boucle infinie, puisque les documents par défaut sont activés, une demande d' / se transforme en une demande de /par défaut.aspx
pas dans les en-têtes
OriginalL'auteur Spencer Ruport
eh bien, vous pouvez l'utiliser régulièrement .net pour inspecter httprequest url, si elle a "par défaut.aspx", vous pouvez rediriger vers "/", il n'y aura pas de boucle infinie et tu ferais mieux de le faire sur la précharge, et à la fin de la réponse par la suite, afin de minimiser le temps qu'il faut pour traiter
OriginalL'auteur Ayyash