¿Cómo reescribo las URL en ASP.NET?
Me gustaría que los usuarios puedan acceder a http://www.website.com/users/smith en lugar de http://www.website.com/?user=smith
¿Cómo reescribo las URL en ASP.NET?
Me gustaría que los usuarios puedan acceder a http://www.website.com/users/smith en lugar de http://www.website.com/?user=smith
Pruebe el Rewriter de Url de Managed Fusion y el Proxy inverso:
http://urlrewriter.codeplex.com
La regla para reescribir esto sería:
# 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 explica cómo hacerlo nativamente en .Net bastante extensamente aquí .
He usado el enfoque httpmodule y funciona bien. Básicamente es lo que ManagedFusion está haciendo por ti.
He utilizado un httpmodule para la reescritura url de www.urlrewriting.net con gran éxito (aunque creo que una versión mucho más simple)
Si tiene muy pocas reglas de reescritura reales, entonces las asignaciones de URL integradas en .NET 2.0 son probablemente una opción más fácil, hay algunas versiones de éstas en la web, la 4guysfromrolla parece bastante exhaustiva, pero como puede ver, no lo hacen. admite que las asignaciones de expresiones regulares son, como tales, bastante inútiles en un entorno dinámico (suponiendo que "smith" en su ejemplo no es un caso especial, estas no servirían de nada)
Microsoft incluye ahora una URL oficial Reescribiendo Módulo para IIS: http://www.iis.net/download/urlrewrite
Es compatible con la mayoría de los tipos de reescritura incluyendo el establecimiento de variables de servidor y comodines.
También existirá en todas las instancias web Azure fuera de la caja.