ADC

Ejemplo 6: Migrar las reglas del módulo de reescritura de Apache

Example Inc., actualmente está usando 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. desea simplificar su configuración migrando estas reglas a la plataforma NetScaler.

A continuación se muestran varias reglas de reescritura de Apache que Example usa 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 cumplen estas condiciones.

Las siguientes son las reglas actuales de reescritura de Apache:

  • RewriteCond% {REQUEST_FILENAME} ^/search$ [NC]
  • RewriteCond% {QUERY_STRING}! siteId= [O]
  • RewriteCond %{QUERY_STRING} SiteId=0
  • rewriteCond% {QUERY_STRING} callName=DisplayResults [NC]
  • Regla de reescritura ^.*$ results2.html [P, L]
  • RewriteCond% {REQUEST_FILENAME} ^/search$ [NC]
  • rewriteCond% {QUERY_STRING} callName=DisplayResults [NC]
  • Regla de reescritura ^.*$ /results.html [P, L]

Para implementar estas reglas de reescritura de Apache en NetScaler, 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 objetivo Expresión de cadena para texto de reemplazo
Action-rewrite-display_results_nulsiteID REEMPLAZAR HTTP.REQ.URL “/results2.html”
Acción, reescritura, visualización de resultados REEMPLAZAR HTTP.REQ.URL “/results2.html”

A continuación, crearía directivas de reescritura con los valores que se muestran en las tablas siguientes.

Nombre de directiva Nombre de acción Acción indefinida Expresión
policy-rewrite-display_results_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 directivas, visualización de resultados Acción, reescritura, visualización de resultados NOREWRITE HTTP.REQ.URL.PATH.SET_TEXT_MODE(IGNORECASE).EQ(“/search”) || HTTP.REQ.URL.QUERY.SET_TEXT_MODE(IGNORECASE).CONTAINS(“CallName=DisplayResults”))

Por último, enlazaría las directivas de reescritura, asignaría a la primera una prioridad de 600 y a la segunda una prioridad de 700 y, a continuación, establecería la expresión goto en NEXT para ambos enlaces.

NetScaler ahora gestiona estas solicitudes de búsqueda exactamente como lo hacía el servidor web antes de que se migraran las reglas del módulo de reescritura de Apache.

Ejemplo 6: Migrar las reglas del módulo de reescritura de Apache

En este artículo