Cómo configurar la reescritura de URL de IIS7.x con Dispatcher

Problema, pregunta

Cuando intento configurar reglas de reescritura en IIS con Dispatcher instalado obtengo 500 errores.  ¿Cómo configuro el módulo de reescritura de URL de IIS7 para que funcione con CQ Dispatcher?

Resolución, respuesta

Configuración de IIS 7.x

Instrucciones para instalar IIS7.x:
http://learn.iis.net/page.aspx/29/installing-iis-7-on-windows-server-2008-or-windows-server-2008-r2/

Cuando instale IIS, asegúrese de habilitar todas las funciones.

Configurar la reescritura de URL de IIS

Necesitará el módulo de reescritura de URL de IIS.  Para instalarlo, haga clic en el botón de instalación en el lado derecho de esta página web:
http://www.iis.net/download/urlrewrite

Configuración de Dispatcher

Para instalar Dispatcher en IIS7, siga las instrucciones aquí:
http://dev.day.com/docs/en/cq/current/deploying/dispatcher.html#Microsoft%20Information%20Server

Configure la reescritura de URL para que funcione con compresión gzip

En este paso configuraremos la función de compresión gzip de IIS para que funcione con reescritura de salida de URL (con una configuración predeterminada, estas dos funciones entran en conflicto).

  1. Vaya a "Inicio" -> "Herramientas administrativas" -> "Administrador de servicios de información de internet (IIS)"
  2. En el administrador de IIS, busque en el árbol y seleccione el sitio IIS donde ha configurado Dispatcher.
  3. Haga doble clic en Compresión.
  4. Desmarcar "Activar compresión estática de contenido"
  5. Vaya a Inicio y haga clic
  6. En el cuadro de edición "Buscar programas y archivos", introduzca "cmd" y pulse Ctrl+Shift+Enter (esto ejecutará el comando como Administrador)
  7. En la línea de comandos de administración, escriba lo siguiente para agregar la entrada de registro LogRewrittenUrlEnabled:
    reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InetStp\Rewrite /v LogRewrittenUrlEnabled /t REG_DWORD /d 0
  8. Vuelva a la ventana "Administrador de servicios de información de internet (IIS)" y vaya de nuevo al sitio web de Dispatcher. A continuación, haga doble clic en Editor de configuración y compruebe que la propiedad dynamicCompressionBeforeCache esté definida como False para el elemento de configuración /system.webServer/urlCompression.
  9. Vuelva a la vista principal del sitio (haciendo clic en el sitio en el árbol de la izquierda)
  10. Haga doble clic en "Módulos"
  11. En la pantalla de módulos, en el lado derecho, haga clic en "Ver lista de pedidos..."
  12. Mueva el módulo de reescritura de URL (RewriteModule) debajo del módulo de compresión dinámica (DynamicCompressionModule).

Configuración de las reglas de reescritura de ejemplo

En este paso, configuraremos algunas reglas de reescritura de ejemplo para el sitio web www.geometrixx.com. Estas reglas reescribirán las url de extensión .html para que ya no contengan /content/geometrixx. Por ejemplo, si va directamente a una instancia de publicación de CQ5, puede ir a http://localhost:4503/content/geometrixx/en.html. Con estas reglas de reescritura, si accede al servidor IIS usando el nombre de host dns www.geometrixx.com, puede ir a http://www.geometrixx.com/en.html y a /content/geometrixx/en.html.

Para configurar reglas de reescritura que funcionen de forma coherente con el módulo de Dispatcher, deberá configurarlas en el nivel de servidor. Además, es mucho más rápido configurar estas reglas modificando el archivo xml applicationHost.config de IIS que utilizando la interfaz de usuario, por lo que estas instrucciones seguirán este método.

  1. Ir a "Inicio"
  2. Introduzca el texto "bloc de notas" en la casilla "Buscar programas y archivos" y pulse Ctrl+Shift+Enter (que ejecutará el comando como Administrador)
  3. Haga clic en Sí en la ventana emergente que aparece y pregunta ¿Desea permitir que el siguiente programa realice cambios en este ordenador?
  4. En el bloc de notas, vaya a Archivo -> Abrir.
  5. En el cuadro de diálogo copie y pegue esta ruta: c:\Windows\system32\inetsrv\config\applicationHost.config y pulse Intro. Ahora el contenido del archivo applicationHost.config debe mostrarse en el bloc de notas.
  6. Copiar / Pegar lo siguiente justo antes de la etiqueta xml final </system.webServer>
    <rewrite>
    <globalRules>
      <rule name="Root Context 1" enabled="true">
        <match url="^(.*)\.html(.*)" />
    <action type="Rewrite" url="/content/geometrixx/{R:1}.html{R:2}" appendQueryString="false" />
    <conditions>
    <add input="{HTTP_HOST}" pattern="^www.geometrixx.com" />
    <add input="{REQUEST_URI}" pattern="^/etc/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/etc$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/bin/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/system/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/libs/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/libs$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/var/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/tmp/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/tmp$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/crx/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/crx$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/content/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/crxde$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/apps/" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/apps$" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/scripts/disp_iis" negate="true" />
    <add input="{REQUEST_URI}" pattern="^/dispatcher/invalidate" negate="true" />
    </conditions>
    </rule>
    </globalRules>
    <outboundRules>
    <rule name="rewrite output" enabled="true">
    <match filterByTags="A, Area, Base, Form, Frame, Head, IFrame, Img, Input, Link, Script" pattern="^/content/geometrixx/(.*)\.html(.*)$" />
    <action type="Rewrite" value="/{R:1}.html{R:2}" />
    <conditions>
    </conditions>
    </rule>
    </outboundRules>
    </rewrite>
  7. En el bloc de notas, presione Ctrl+s para guardar
  8. Vaya a "Inicio" -> "Herramientas administrativas" -> "Administrador de servicios de información de internet (IIS)"
  9. Seleccionar/desplegar el nodo superior del árbol (el icono del servidor)
  10. Haga clic con el botón derecho del ratón en el icono del servidor y haga clic en Detener para detener el servidor.
  11. Cuando se detenga, retroceda y haga clic en Inicio.
  12. Seleccione el icono Servidor en el Administrador de IIS
  13. En el panel derecho, haga doble clic en "Reescribir URL"
  14. Ahora debería ver las reglas de ejemplo que hemos añadido a través de los archivos xml
Logotipo de Adobe

Inicia sesión en tu cuenta