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

¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top