Gardez anciennes URL lors de la mise en œuvre UrlRewriter.net
-
18-09-2019 - |
Question
J'ai ajouté UrlRewriter.net sur mon site aujourd'hui et il fonctionne très bien avec rediriger mes liens SEO vers des pages réelles. La question est de savoir s'il y a un moyen de conserver mes liens dans le site et ont ResolveUrl () en utilisant les règles de liens de sortie dans ma page. Les liens « anciens » ne devraient jamais être considérés soit par les robots de recherche ou les utilisateurs.
exemple de lien dans la page:
<a href="<%= ResolveUrl("~/Help.aspx") %>">Help</a>
J'ai ajouté le code rewrite comme ça dans web.config:
<rewrite url="~/help" to="~/help.aspx" />
<rewrite url="~/help/(.+)" to="~/help.aspx?section=$1" />
D'abord, il serait bon d'avoir les liens rendus sans travail supplémentaire comme MVC a. Le deuxième meilleur est s'il y a un bon moyen d'ajouter simplement des règles pour « l'autre sens » aussi bien dans la liste de réécriture.
Cela aussi me permettre de tourner easally sous / hors redirection lors du débogage.
La solution
Ok. Je mis à exécution les tecnique de routage utilisé dans le routage MVC dans mes web.forms au lieu qui m'a permis d'utiliser le code ci-dessous:
ASPX:
<%= Url.RouteUrl("article", new { name="my-name-for-artcile"}) %>
Et inscrivez-vous tous les itinéraires en un seul endroit comme:
routes.MapWebFormRoute("articles", "artiklar", "~/articles.aspx");
J'ai utilisé le code Phil Haack fait à propos de Webform routage mais modifia dans une petite façon de le faire fonctionner avec som pages maître et a également ajouté web.config settigns à le faire fonctionner en douceur sur le serveur avec urls non ASPX.
http: // blog. joakimfischer.se/post/2009/11/08/Web-Form-Routing.aspx
Maintenant, cela fonctionne comme prévu, mais je stoped en utilisant UrlRewriter.net pour obtenir la fonctionnalité que je voulais.