2008-08-05 21 views

Respuesta

23

Prueba el Gestionado Fusión Url Regrabadora y proxy inverso:

http://urlrewriter.codeplex.com

La regla para volver a escribir esto sería ser:

# 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] 
+0

Una sugerencia: Ajustaría la primera RewriteRule para que parezca^/? users = (\ w *) para que http://www.website.com/?users=smith&day=monday no produzca http://www.website.com/users/smith&day=monday – Dscoduc

+0

Esa es una buena idea y totalmente compatible con esta versión .NET. La intención original era hacer mi ejemplo compatible con mod_rewrite que no admite esa sintaxis. –

+0

Esto es asombroso. –

20

Scott Guthrie explica cómo hacerlo de forma nativa en .Net bastante extensamente here.

He utilizado el enfoque httpmodule y funciona bien. Básicamente es lo que ManagedFusion está haciendo por ti.

+0

¡Gracias, el blog de ScottGu fue perfecto! –

4

he utilizado un HttpModule para la reescritura de URL de www.urlrewriting.net con gran éxito (aunque creo que una gran parte anterior, versión más simple)

Si usted tiene muy pocas reglas de reescritura reales luego asignaciones de URL integradas en .NET 2.0 son probablemente una opción más fácil, hay algunos comentarios de estos en la web, el 4guysfromrolla parece bastante exhaustivo, pero como se puede ver, no son compatibles con las asignaciones de expresiones regulares, ya que son bastante inútiles en un entorno dinámico (suponiendo que " smith "en su ejemplo no es un caso especial, entonces estos no servirían de nada)

5

Microsoft ahora envía una modificación de URL oficial Mod para IIS: http://www.iis.net/download/urlrewrite

Admite la mayoría de los tipos de reescritura, incluidas la configuración de variables de servidor y comodines.

También existirá en todas las instancias web Azure listas para usar.

+0

Esto parece interesante. ¿Sabes si funcionará en IIS6 y en qué nivel de la pila de red se encuentra? – GateKiller

+0

Esto es solo una solución IIS7 y superior (es un módulo http://learn.iis.net/page.aspx/121/iis-7-modules-overview/), para IIS6 necesitará www.isapirewrite.com o www.urlrewriter.net, isapi rewrite parece un producto comercial estable para iis6 –

+0

@GateKiller :) se olvidó de notificarte en mi comentario anterior –

Cuestiones relacionadas