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
Î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]
Am folosit un httpmodule pentru rescrierea URL-urilor de la www.urlrewriting.net cu un mare succes (deși cred că o mult versiune mai simplă, mai simplă)
Dacă aveți foarte puține reguli de rescriere reale, atunci mapările url construite în .NET 2.0 sunt probabil o opțiune mai ușoară, există câteva scrieri ale acestora pe web, unul pare destul de exhaustiv, dar după cum puteți vedea că acestea nu acceptă mapări expresive regulate, acestea sunt astfel redate destul de inutile într-un mediu dinamic ( presupunând că "smith" în exemplul tău nu este un caz special, atunci acestea nu ar fi de folos)
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.