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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top