Reescritura de URL de ASP.NET
-
08-06-2019 - |
Pregunta
¿Cómo reescribo las URL en ASP.NET?
Me gustaría que los usuarios pudieran ir a http://www.website.com/users/smith en lugar de http://www.website.com/?user=smith
Solución
Pruebe la reescritura 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]
Otros consejos
Microsoft ahora incluye un módulo de reescritura de URL oficial para IIS: http://www.iis.net/download/urlrewrite
Admite la mayoría de los tipos de reescritura, incluida la configuración de variables de servidor y comodines.
También existirá en todas las instancias web de Azure listas para usar.
He utilizado un módulo http para reescribir URL desde www.urlrewriting.net con gran éxito (aunque creo que es una versión mucho anterior y más sencilla)
Si tiene muy pocas reglas de reescritura, entonces las asignaciones de URL integradas en .NET 2.0 probablemente sean una opción más sencilla; hay algunos artículos sobre estas en la web, el 4chicosderolla uno parece bastante exhaustivo, pero como puede ver, no admiten asignaciones de expresiones regulares y, como tales, se vuelven bastante inútiles en un entorno dinámico (suponiendo que "smith" en su ejemplo no sea un caso especial, entonces no serían de utilidad)