
Πώς μπορώ να ξαναγράψει URL στο ASP.NET;


Θα ήθελα χρήστες να είναι σε θέση να goto **<http://www.website.com/users/smith>** αντί **<http://www.website.com/?user=smith>**

 
ASP.NET URL Ξαναγράφοντας
=========================



Δοκιμάστε την διαχείριση Fusion Url Rewriter και Αντίστροφη μεσολάβησης:


<http://urlrewriter.codeplex.com>


Ο κανόνας για την επανεγγραφή αυτό θα ήταν:



```
# 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]

```
 

Scott Guthrie καλύπτει το πώς να το κάνουμε αυτό εγγενώς στην Καθαρή αρκετά εκτενώς [εδώ](http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx) .


Έχω χρησιμοποιήσει την προσέγγιση HttpModule και λειτουργεί καλά. Είναι βασικά αυτό που κάνει ManagedFusion για σας.

 

Έχω χρησιμοποιήσει ένα HttpModule για URL Ξαναγράφοντας από [www.urlrewriting.net](http://www.urlrewriting.net/) με μεγάλη επιτυχία (αν και πιστεύω ότι πολύ νωρίτερα, απλούστερη έκδοση)


Αν έχετε πολύ λίγα πραγματικά κανόνες επανεγγραφής στη συνέχεια url αντιστοιχίσεις ενσωματωμένη στο .NET 2.0 είναι ίσως μια πιο εύκολη επιλογή, υπάρχουν μερικά πλάνα εγγραφής από αυτά στο διαδίκτυο, η [4guysfromrolla](http://aspnet.4guysfromrolla.com/articles/011007-1.aspx) ένα φαίνεται αρκετά εξαντλητική, αλλά όπως μπορείτε να δείτε δεν το κάνουν υποστήριξη τακτική απεικονίσεις της έκφρασης είναι οι ως εκ τούτου καθίστανται αρκετά άχρηστο σε ένα δυναμικό περιβάλλον (υποθέτοντας ότι «smith» στο παράδειγμά σας δεν είναι μια ειδική περίπτωση τότε αυτά θα ήταν άχρηστο)

 

Η Microsoft τώρα τα πλοία επίσημη URL Ξαναγράφοντας Ενότητα για το IIS: <http://www.iis.net/download/urlrewrite> 


Υποστηρίζει τους περισσότερους τύπους ξαναγράφοντας συμπεριλαμβανομένου του καθορισμού των μεταβλητών server και μπαλαντέρ.


Επίσης θα υπάρχουν σε όλες τις Azure περιπτώσεις web έξω από το κουτί.

 