2010-11-09 13 views
6

Tengo una aplicación web .net 4.0 alojada en el servidor IIS7.IIS 7 Las reglas de reescritura de URL no se están aplicando

Después de leer esto: http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/ sobre la prestación de contenido estático de otro servidor, para que las cookies no se envíen con cada solicitud de un archivo estático, lo probé pero sin mucho éxito.

Esta es la parte escrita en el archivo web.config:

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="images" stopProcessing="true"> 
       <match url="^images/(.*)$" /> 
       <action type="Rewrite" url="http://static-server.com/images/{R:1}" appendQueryString="true" logRewrittenUrl="true" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Con esta regla definida, cada enlace a un archivo en la carpeta de imágenes debe ser regrabadas en la URL del servidor estático. Pero esto no funciona en absoluto, ahora cada imagen que está en la carpeta de imágenes devuelve un 404 no encontrado. ¿Alguna idea sobre qué podría estar causando este comportamiento o una solución diferente sobre cómo servir archivos de una carpeta específica desde un servidor diferente sin tener que pasar por toneladas de código y cambiar todos los enlaces para enlazar al servidor estático?

También intenté usar el tipo de acción Redirect en lugar de la acción Rewrite, que en realidad funcionó, pero desafía la razón por la que trato de servir los archivos en un servidor diferente (de esta manera la solicitud se envía a mi servidor de contenido dinámico con todas las cookies requeridas y se redirige al servidor estático, que en realidad es peor que servir las imágenes desde el servidor de contenido dinámico).

Respuesta

2

No creo que solo la regla resuelva este problema para usted. Probablemente no reescribe los enlaces en las páginas que se envían a los usuarios.

El artículo al que se ha vinculado sugiere que lo hace "junto con el IIS Application Request Routing module". Es el módulo de enrutamiento que realmente cambia los enlaces dentro de los archivos enviados al cliente.

+0

Instalé el módulo 'Enrutamiento de solicitud de aplicación' siguiendo http://learn.iis.net/page.aspx/485/define-and-configure-an-application-request-routing-server-farm/ paso a paso y http://learn.iis.net/page.aspx/484/configure-3-tier-deployment-architecture-using-application-request-routing/ sin resultado positivo. Solo entonces no obtengo un 404 sino un 500. ¿Quizás algo está mal con la forma en que configuro el módulo ARR? – Atzoya

+0

De qué se trata el error 500 (compruebe los registros) –

+0

Definitivamente es el módulo ARR el que está causando los problemas, pero parece que no puedo configurarlo. He decidido ir con un enfoque diferente (cambié manualmente las rutas de algunos de los recursos necesarios) hasta que descubro cómo configurar correctamente el módulo. Cuando descubra qué está causando el problema, actualizaré mi publicación con lo que hice. – Atzoya

Cuestiones relacionadas