Mantenere i vecchi URL in sede di attuazione UrlRewriter.net
-
18-09-2019 - |
Domanda
Ho aggiunto UrlRewriter.net al mio sito oggi e funziona bene con il reindirizzamento miei link di SEO per le pagine effettive. La domanda è: se non v'è alcun modo per mantenere i miei vecchi collegamenti nel sito e hanno ResolveUrl () utilizzando le regole per i collegamenti di uscita nella mia pagina. I "vecchi" link non dovrebbero mai essere visualizzate da entrambi i bot di ricerca o utenti.
Esempio di collegamento in pagina:
<a href="<%= ResolveUrl("~/Help.aspx") %>">Help</a>
Ho aggiunto il codice riscrittura come questo nel web.config:
<rewrite url="~/help" to="~/help.aspx" />
<rewrite url="~/help/(.+)" to="~/help.aspx?section=$1" />
In primo luogo, sarebbe bello avere i link resi senza alcun lavoro extra come MVC ha. La seconda cosa migliore è se c'è un bel modo per aggiungere solo le regole per "l'altro modo", così nella lista di riscrittura.
Questo sarebbe anche mi permettono di trasformare easally off / on reindirizzamento in fase di debug.
Soluzione
Ok. Ho implementato la tecnica di routing utilizzato in MVC instradamento nei miei web.forms invece che mi ha permesso di utilizzare il codice qui sotto:
ASPX:
<%= Url.RouteUrl("article", new { name="my-name-for-artcile"}) %>
e registrare tutte le rotte in un unico luogo come:
routes.MapWebFormRoute("articles", "artiklar", "~/articles.aspx");
Ho usato il codice Phil Haack fatto circa Webform instradamento ma modificato in un piccolo modo per farlo lavorare con le pagine master e anche aggiunto settigns som web.config per farlo funzionare senza problemi su server con URL non aspx.
http: // blog. joakimfischer.se/post/2009/11/08/Web-Form-Routing.aspx
Ora funziona come previsto, ma ho fermato utilizzando UrlRewriter.net per ottenere la funzionalità che volevo.