Vă mulțumim pentru susținere

Rescrierea adresei URL ASP.NET

Cum rescriu URL-urile în ASP.NET?

I would like users to be able to goto http://www.website.com/users/smith instead of http://www.website.com/?user=smith

0
adăugat editat

3 răspunsuri

Încercați rewriterul de gestionare a fluxului gestionat și proxy-ul invers:

http://urlrewriter.codeplex.com

Regula de rescriere a acestui lucru ar fi:

# 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]
0
adăugat
Aceasta este o idee bună și susținută total în această versiune .NET. Intenția inițială a fost să fac exemplul meu compatibil cu mod_rewrite care nu acceptă această sintaxă.
adăugat autor Nick Berardi
O sugestie: aș fi modificat primul RewriteRule să arate ca ^ /? Users = (\ w *) astfel încât website.com/?users=smith&day=monday nu produce site-ul web .com / utilizatori / Smith & zi = luni
adăugat autor Dscoduc

Scott Guthrie se referă la modul în care se face acest lucru în mod natural în .Net destul de extensiv aici .

Am folosit abordarea httpmodule și funcționează bine. Este în esență ceea ce face ManagedFusion pentru tine.

0
adăugat
Mulțumesc, blogul ScottGu a fost pe loc!
adăugat autor Bjørn Otto Vasbotten

Microsoft trimite acum un modul oficial de rescriere a adreselor URL pentru IIS: http://www.iis.net/download/urlrewrite

Acesta suporta majoritatea tipurilor de rescrieri, incluzând setarea variabilelor de server și a metacaracterelor.

De asemenea, va exista pe toate site-urile web Azure din cutie.

0
adăugat
Acest lucru pare interesant. Știți dacă va funcționa pe IIS6 și la ce nivel din stivă de rețea se află?
adăugat autor GateKiller
Aceasta este o soluție IIS7 și numai până (un modul al acesteia aflați .iis.net / page.aspx / 121 / iis-7-modules-overview ), pentru IIS6 aveți nevoie de www.isapirewrite.com sau www.urlrewriter.net, rescrierea isapi pare a fi un produs comercial stabil pentru IIS6
adăugat autor Sam Saffron