Ejemplo 6: Migración de reglas del módulo de reescritura de Apache

Example Inc., actualmente está utilizando el módulo de reescritura de Apache para procesar las solicitudes de búsqueda enviadas a sus servidores web y redirigir esas solicitudes al servidor apropiado sobre la base de la información en la URL de solicitud. Example Inc. quiere simplificar su configuración migrando estas reglas a la plataforma Citrix ADC.

A continuación se muestran varias reglas de reescritura de Apache que Ejemplo utiliza actualmente. Estas reglas redirigen las solicitudes de búsqueda a una página de resultados especial si no tienen una cadena SiteID o si tienen una cadena SiteID igual a cero (0), o a la página de resultados estándar si no se aplican estas condiciones.

Las siguientes son las reglas actuales de reescritura de Apache:

  • RewriteCond% {REQUEST_FILAME} ^/search$[NC]
  • RewriteCond %{QUERY_STRING} !SiteId= [O BIEN]
  • RewriteCond %{QUERY_STRING} SiteId=0
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • RewriteRule ^.*$ results2.html [P,L]
  • RewriteCond% {REQUEST_FILAME} ^/search$[NC]
  • RewriteCond %{QUERY_STRING} CallName=DisplayResults [NC]
  • RewriteRule ^.*$ /results.html [P,L]

Para implementar estas reglas de reescritura de Apache en Citrix ADC, debe crear acciones de reescritura con los valores de las tablas siguientes.

Nombre de acción Tipo de acción de reescritura Expresión para elegir la referencia de destino Expresión de cadena para texto de reemplazo
Action-Rewrite-Display_Results_NulSiteID REPLACE HTTP.REQ.URL “/results2.html”
Action-Rewrite-Display_Results REPLACE HTTP.REQ.URL “/results2.html”

A continuación, crear directivas de reescritura con los valores como se muestra en las tablas siguientes.

Nombre de la directiva Nombre de acción Acción indefinida Expresión
Reescritura de directiva-display_resultados_nulSiteId Action-Rewrite-Display_Results_NulSiteID NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE (IGNORECASE).EQ (“/search”) && (! HTTP.REQ.URL.QUERY.CONTAINS (“siteId=”) || HTTP.REQ.URL.QUERY.CONTAINS (“siteId=0”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE (IGNORECASE).CONTAINS (“callName=displayResults”))
Reescritura de directiva-Display_Results Action-Rewrite-Display_Results NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE (IGNORECASE).EQ (“/search”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE (IGNORECASE).CONTAINS (“callName=displayResults”))

Finalmente, vincularía las directivas de reescritura, asignando a la primera una prioridad de 600 y a la segunda una prioridad de 700, y luego establecería la expresión goto en NEXT para ambos enlaces.

El dispositivo Citrix ADC ahora maneja estas solicitudes de búsqueda exactamente como lo hacía el servidor web antes de migrar las reglas del módulo de reescritura de Apache.

Ejemplo 6: Migración de reglas del módulo de reescritura de Apache