Riscrittura URL ASP.NET
-
08-06-2019 - |
Domanda
Come posso riscrivere gli URL in ASP.NET?
Vorrei che gli utenti potessero andare a http://www.website.com/users/smith invece di http://www.sitoweb.com/?utente=smith
Soluzione
Prova il Managed Fusion Url Rewriter e il Reverse Proxy:
http://urlrewriter.codeplex.com
La regola per riscriverlo sarebbe:
# clean up old rules and forward to new URL
RewriteRule ^/?user=(.*) /users/$1 [NC,R=301]
# rewrite the rule internally
RewriteRule ^/users/(.*) /?user=$1 [NC,L]
Altri suggerimenti
Microsoft ora fornisce un modulo ufficiale di riscrittura degli URL per IIS: http://www.iis.net/download/urlrewrite
Supporta la maggior parte dei tipi di riscrittura, inclusa l'impostazione di variabili del server e caratteri jolly.
Sarà inoltre disponibile immediatamente in tutte le istanze Web di Azure.
Ho utilizzato un modulo http per la riscrittura degli URL da www.urlrewriting.net con grande successo (anche se credo ad una versione molto precedente e più semplice)
Se disponi di pochissime regole di riscrittura effettive, le mappature URL integrate in .NET 2.0 sono probabilmente un'opzione più semplice, ci sono alcuni resoconti di questi sul Web, il 4ragazzidiRolla uno sembra abbastanza esaustivo ma come puoi vedere non supportano i mapping delle espressioni regolari e sono come tali resi abbastanza inutili in un ambiente dinamico (supponendo che "smith" nel tuo esempio non sia un caso speciale, allora questi sarebbero inutili)