ADC
Gracias por los comentarios

Este artículo ha sido traducido automáticamente. (Aviso legal)

Migración de reglas mod_rewrite de Apache a la sintaxis predeterminada

El servidor HTTP Apache proporciona un motor conocido como mod_rewrite para reescribir direcciones URL de solicitud HTTP. Si migra las reglas mod_rewrite de Apache a Citrix ADC, aumentará el rendimiento del servidor back-end. Además, dado que el dispositivo Citrix ADC normalmente equilibra la carga varios (a veces miles de) servidores web, después de migrar las reglas al Citrix ADC tendrá un único punto de control para estas reglas.

A continuación se presentan ejemplos de funciones mod_rewrite y traducciones de estas funciones en directivas Reescritura y Responder en Citrix ADC.

Conversión de variaciones de URL en URL canónicas

En algunos servidores web puede tener varias direcciones URL para un recurso. Aunque las URL canónicas deben usarse y distribuirse, otras URL pueden existir como accesos directos o URL internas. Puede asegurarse de que los usuarios vean la URL canónica independientemente de la URL utilizada para realizar una solicitud inicial.

En los ejemplos siguientes, la URL /~user se convierte en /u/user.

Solución mod_rewrite de Apache para convertir una URL

RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2[R]

Solución Citrix ADC para convertir una URL

add responder action act1 redirect '"/u/"+HTTP.REQ.URL.AFTER_STR("/~")' -bypassSafetyCheck yes add responder policy pol1 'HTTP.REQ.URL.STARTSWITH("/~") && HTTP.REQ.URL.LENGTH.GT(2)' act1 bind responder global pol1 100

Conversión de variaciones de nombres de host en nombres de host canónicos

Puede imponer el uso de un nombre de host determinado para llegar a un sitio. Por ejemplo, puede imponer el uso de www.example.com en lugar de example.com.

Solución mod_rewrite Apache para imponer un nombre de host particular para sitios que se ejecutan en un puerto distinto a 80

RewriteCond %{HTTP_HOST} !^www.example.com RewriteCond %{HTTP_HOST} !^$ RewriteCond %{SERVER_PORT} !^80$ RewriteRule ^/(.*) http://www.example.com:%{SERVER_PORT}/$1 [L,R]

Solución mod_rewrite Apache para imponer un nombre de host particular para sitios que se ejecutan en el puerto 80

RewriteCond %{HTTP_HOST} !^www.example.com RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) http://www.example.com/$1 [L,R]

Solución Citrix ADC para imponer un nombre de host concreto para sitios que se ejecutan en un puerto distinto de 80

add responder action act1 redirect '"http://www.example.com:"+CLIENT.TCP.DSTPORT+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol1 '!HTTP.REQ.HOSTNAME.CONTAINS("www.example.com")&&!HTTP.REQ.HOSTNAME.EQ("")&&!HTTP.REQ.HOSTNAME.PORT.EQ(80)&&HTTP.REQ.HOSTNAME.CONTAINS("example.com")' act1 bind responder global pol1 100 END

Solución Citrix ADC para imponer un nombre de host concreto para sitios que se ejecutan en el puerto 80

add responder action act1 redirect '"http://www.example.com"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol1 '!HTTP.REQ.HOSTNAME.CONTAINS("www.example.com")&&!HTTP.REQ.HOSTNAME.EQ("")&&HTTP.REQ.HOSTNAME.PORT.EQ(80)&&HTTP.REQ.HOSTNAME.CONTAINS("example.com")' act1 bind responder global pol1 100 END

Mover una raíz de documento

Por lo general, la raíz del documento de un servidor web se basa en la URL “/”. Sin embargo, la raíz del documento puede ser cualquier directorio. Puede redirigir el tráfico a la raíz del documento si cambia del directorio de nivel superior “/” a otro directorio.

En los ejemplos siguientes, cambie la raíz del documento de / a /e/www. Los dos primeros ejemplos simplemente reemplazan una cadena por otra. El tercer ejemplo es más universal porque, junto con la sustitución del directorio raíz, conserva el resto de la URL (la ruta y la cadena de consulta), por ejemplo, redirigiendo /example/file.html a /e/www/example/file.html.

Solución mod_rewrite de Apache para mover la raíz del documento

RewriteEngine on RewriteRule ^/$ /e/www/ [R]

Solución Citrix ADC para mover la raíz del documento

add responder action act1 redirect '"/e/www/"' -bypassSafetyCheck yes add responder policy pol1 'HTTP.REQ.URL.EQ("/")' act1 bind responder global pol1 100

Solución Citrix ADC para mover la raíz del documento y agregar información de ruta a la solicitud

add responder action act1 redirect '"/e/www"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol1 '!HTTP.REQ.URL.STARTSWITH("/e/www/")' act1 bind responder global pol1 100 END

Mover directorios particulares a un nuevo servidor web

Es posible que quiera redirigir las solicitudes que se envían a directorios particulares de un servidor web a otro servidor web. Por ejemplo, si un nuevo servidor web está reemplazando uno antiguo con el tiempo, a medida que migra los directorios principales a la nueva ubicación, deberá redirigir las solicitudes de los directorios principales migrados al nuevo servidor web.

En los ejemplos siguientes, el nombre de host del nuevo servidor web es nuevoservidor.

Solución mod_rewrite Apache para redirigir a otro servidor web

RewriteRule ^/(.+) http://newserver/$1 [R,L]

Solución Citrix ADC para redirigir a otro servidor web (método 1)

add responder action act1 redirect '"http://newserver"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol1 'HTTP.REQ.URL.REGEX_MATCH(re#^/(.+)#)' act1 bind responder global pol1 100 END

Solución Citrix ADC para redirigir a otro servidor web (método 2)

add responder action act1 redirect '"http://newserver"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol1 'HTTP.REQ.URL.LENGTH.GT(1)' act1 bind responder global pol1 100 END

Trabajar con directorios particulares estructurados

Normalmente, un sitio con miles de usuarios tiene un diseño de directorio principal estructurado. Por ejemplo, cada directorio particular puede residir bajo un subdirectorio que se denomina mediante el primer carácter del nombre de usuario. Por ejemplo, el directorio de inicio de jsmith (/~jsmith/anypath) podría ser /home/j/smith/.www/anypath, y el directorio de inicio de rvalveti (/~rvalveti/anypath) podría ser /home/r/rvalveti/.www/anypath.

Los siguientes ejemplos redirigen las solicitudes al directorio principal.

Solución mod_rewrite Apache para directorios particulares estructurados

RewriteRule ^/~(([a-z])[a-z0-9]+)(.*) /home/$2/$1/.www$3

Solución Citrix ADC para directorios particulares estructurados

Solución Citrix ADC para directorios particulares estructurados

add rewrite action act1 replace 'HTTP.REQ.URL' '"/home/"+ HTTP.REQ.URL.AFTER_STR("~").PREFIX(1)+"/"+ HTTP.REQ.URL.AFTER_STR("~").BEFORE_STR("/")+"/.www"+HTTP.REQ.URL.SKIP('/',1)' -bypassSafetyCheck yes add rewrite policy pol1 'HTTP.REQ.URL.PATH.STARTSWITH("/~")' act1 bind rewrite global pol1 100

Redirigir direcciones URL no válidas a otros servidores web

Si una dirección URL no es válida, se debe redirigir a otro servidor web. Por ejemplo, debe redirigir a otro servidor web si un archivo que se denomina en una dirección URL no existe en el servidor que se denomina en la dirección URL.

En Apache, puede realizar esta comprobación mediante mod_rewrite. En Citrix ADC, una llamada HTTP puede buscar un archivo en un servidor ejecutando un script en el servidor. En los siguientes ejemplos de Citrix ADC, un script denominado file_check.cgi procesa la URL y utiliza esta información para comprobar la presencia del archivo de destino en el servidor. El script devuelve TRUE o FALSE, y Citrix ADC utiliza el valor que devuelve el script para validar la directiva.

Además de realizar la redirección, Citrix ADC puede agregar encabezados personalizados o, como en el segundo ejemplo de Citrix ADC, puede agregar texto en el cuerpo de la respuesta.

Solución mod_rewrite de Apache para redirección si una URL es incorrecta

RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f RewriteRule ^(.+) http://webserverB.com/$1 [R]

Solución Citrix ADC para redirección si una dirección URL es incorrecta (método 1)

add HTTPCallout Call set policy httpCallout Call -IPAddress 10.102.59.101 -port 80 -hostExpr '"10.102.59.101"' -returnType BOOL -ResultExpr 'HTTP.RES.BODY(100).CONTAINS("True")' -urlStemExpr '"/cgi-bin/file_check.cgi"' -parameters query=http.req.url.path -headers Name("ddd") add responder action act1 redirect '"http://webserverB.com"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol1 '!HTTP.REQ.HEADER("Name").EXISTS && !SYS.HTTP_CALLOUT(call)' act1 bind responder global pol1 100

Solución Citrix ADC para redirección si una dirección URL es incorrecta (método 2)

add HTTPCallout Call set policy httpCallout Call -IPAddress 10.102.59.101 -port 80 -hostExpr '"10.102.59.101"' -returnType BOOL -ResultExpr 'HTTP.RES.BODY(100).CONTAINS("True")' -urlStemExpr '"/cgi-bin/file_check.cgi"' -parameters query=http.req.url.path -headers Name("ddd") add responder action act1 respondwith '"HTTP/1.1 302 Moved Temporarily\r\nLocation: http://webserverB.com"+HTTP.REQ.URL+"\r\n\r\nHTTPCallout Used"' -bypassSafetyCheck yes add responder policy pol1 '!HTTP.REQ.HEADER("Name").EXISTS && !SYS.HTTP_CALLOUT(call)' act1 bind responder global pol1 100

Volver a escribir una URL en función del tiempo

Puede volver a escribir una URL en función de la hora. Los ejemplos siguientes cambian una solicitud de example.html a example.day.html o example.night.html, en función de la hora del día.

Solución mod_rewrite Apache para reescribir una URL basada en la hora

RewriteCond %{TIME_HOUR}%{TIME_MIN} >0700 RewriteCond %{TIME_HOUR}%{TIME_MIN} <1900 RewriteRule ^example.html$ example.day.html [L] RewriteRule ^example.html$ example.night.html

Solución Citrix ADC para reescribir una URL en función de la hora

add rewrite action act1 insert_before 'HTTP.REQ.URL.PATH.SUFFIX('.',0)' '"day."' add rewrite action act2 insert_before 'HTTP.REQ.URL.PATH.SUFFIX('.',0)' '"night."' add rewrite policy pol1 'SYS.TIME.WITHIN(LOCAL 07h 00m,LOCAL 18h 59m)' act1 add rewrite policy pol2 'true' act2 bind rewrite global pol1 101 bind rewrite global pol2 102

Redirigir a un nuevo nombre de archivo (Invisible para el usuario)

Si cambia el nombre de una página web, puede seguir siendo compatible con la dirección URL antigua para la compatibilidad con versiones anteriores y evitar que los usuarios reconozcan que se ha cambiado el nombre de la página.

En los dos primeros ejemplos siguientes, el directorio base es /~quux/. El tercer ejemplo admite cualquier directorio base y la presencia de cadenas de consulta en la URL.

Solución mod_rewrite Apache para administrar un cambio de nombre de archivo en una ubicación fija

RewriteEngine on RewriteBase /~quux/ RewriteRule ^foo.html$ bar.html

Solución Citrix ADC para administrar un cambio de nombre de archivo en una ubicación fija

add rewrite action act1 replace 'HTTP.REQ.URL.AFTER_STR("/~quux").SUBSTR("foo.html")' '"bar.html"' add rewrite policy pol1 'HTTP.REQ.URL.ENDSWITH("/~quux/foo.html")' act1 bind rewrite global pol1 100

Solución Citrix ADC para administrar un cambio de nombre de archivo independientemente del directorio base o las cadenas de consulta en la URL

add rewrite action act1 replace 'HTTP.REQ.URL.PATH.SUFFIX('/',0)' '"bar.html"' Add rewrite policy pol1 'HTTP.REQ.URL.PATH.CONTAINS("foo.html")' act1 Bind rewrite global pol1 100

Redirigir al nuevo nombre de archivo (URL visible por el usuario)

Si cambia el nombre de una página web, es posible que quiera seguir siendo compatible con la dirección URL antigua para la compatibilidad con versiones anteriores y permitir a los usuarios ver que se cambió el nombre de la página cambiando la dirección URL que se muestra en el explorador.

En los dos primeros ejemplos siguientes, la redirección se produce cuando el directorio base es /~quux/. El tercer ejemplo admite cualquier directorio base y la presencia de cadenas de consulta en la URL.

Solución mod_rewrite Apache para cambiar el nombre del archivo y la URL mostrada en el explorador

RewriteEngine on RewriteBase /~quux/ RewriteRule ^old.html$ new.html [R]

Solución Citrix ADC para cambiar el nombre de archivo y la URL mostrada en el explorador

add responder action act1 redirect 'HTTP.REQ.URL.BEFORE_STR("foo.html")+"new.html"' -bypassSafetyCheck yes add responder policy pol1 'HTTP.REQ.URL.ENDSWITH("/~quux/old.html")' act1 bind responder global pol1 100

Solución Citrix ADC para cambiar el nombre de archivo y la URL mostrada en el explorador, independientemente del directorio base o las cadenas de consulta en la URL

add responder action act1 redirect 'HTTP.REQ.URL.PATH.BEFORE_STR("old.html")+"new.html"+HTTP.REQ.URL.AFTER_STR("old.html")' -bypassSafetyCheck yes add responder policy pol1 'HTTP.REQ.URL.PATH.CONTAINS("old.html")' act1 bind responder global pol1 100

Acomodar contenido dependiente del explorador

Para adaptarse a las limitaciones específicas del explorador, al menos para páginas importantes de nivel superior, a veces es necesario establecer restricciones en el tipo y la versión del explorador. Por ejemplo, es posible que quiera establecer una versión máxima para las variantes de Netscape más recientes, una versión mínima para los exploradores Lynx y una versión de funciones promedio para todos los demás.

Los siguientes ejemplos actúan sobre el encabezado HTTP “User-Agent”, de modo que si este encabezado comienza con “Mozilla/3”, la página MyPage.html se vuelve a escribir en MyPage.ns.html. Si el explorador es “Lynx” o “Mozilla” versión 1 o 2, la URL se convierte en MyPage.20.html. Todos los demás exploradores reciben la página MyPage.32.html.

Solución mod_rewrite de Apache para configuraciones específicas del explorador

RewriteCond %{HTTP_USER_AGENT} ^Mozilla/3.* RewriteRule ^MyPage.html$ MyPage.NS.html [L] RewriteCond %{HTTP_USER_AGENT} ^Lynx/.* [OR] RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12].* RewriteRule ^MyPage.html$ MyPage.20.html [L] RewriteRule ^fMyPage.html$ MyPage.32.html [L] Citrix ADC solution for browser-specific settings add patset pat1 bind patset pat1 Mozilla/1 bind Patset pat1 Mozilla/2 bind patset pat1 Lynx bind Patset pat1 Mozilla/3 add rewrite action act1 insert_before 'HTTP.REQ.URL.SUFFIX' '"NS."' add rewrite action act2 insert_before 'HTTP.REQ.URL.SUFFIX' '"20."' add rewrite action act3 insert_before 'HTTP.REQ.URL.SUFFIX' '"32."' add rewrite policy pol1 'HTTP.REQ.HEADER("User-Agent").STARTSWITH_INDEX("pat1").EQ(4)' act1 add rewrite policy pol2 'HTTP.REQ.HEADER("User-Agent").STARTSWITH_INDEX("pat1").BETWEEN(1,3)' act2 add rewrite policy pol3 '!HTTP.REQ.HEADER("User-Agent").STARTSWITH_ANY("pat1")' act3 bind rewrite global pol1 101 END bind rewrite global pol2 102 END bind rewrite global pol3 103 END

Bloquear el acceso de los robots

Puede impedir que un robot recupere páginas de un directorio específico o de un conjunto de directorios para facilitar el tráfico hacia y desde estos directorios. Puede restringir el acceso en función de la ubicación específica o puede bloquear solicitudes basadas en la información de los encabezados HTTP del agente de usuario.

En los ejemplos siguientes, la ubicación web que se va a bloquear es /~quux/foo/arc/, las direcciones IP que se van a bloquear son 123.45.67.8 y 123.45.67.9, y el nombre del robot es NameOfBadRobot.

Solución mod_rewrite Apache para bloquear una ruta y un encabezado User-Agent

RewriteCond %{HTTP_USER_AGENT} ^NameOfBadRobot.* RewriteCond %{REMOTE_ADDR} ^123.45.67.[8-9]$ RewriteRule ^/~quux/foo/arc/.+ - [F]

Solución Citrix ADC para bloquear una ruta y un encabezado User-Agent

add responder action act1 respondwith '"HTTP/1.1 403 Forbidden\r\n\r\n"' add responder policy pol1 'HTTP.REQ.HEADER("User_Agent").STARTSWITH("NameOfBadRobot")&&CLIENT.IP.SRC.EQ(123.45.67.8)&&CLIENT.IP.SRC.EQ(123.45.67.9) && HTTP.REQ.URL.STARTSWITH("/~quux/foo/arc")' act1 bind responder global pol1 100

Bloquear el acceso a imágenes en línea

Si encuentra gente que va frecuentemente a su servidor para copiar gráficos en línea para su propio uso (y generar tráfico innecesario), es posible que quiera restringir la capacidad del explorador para enviar un encabezado HTTP Referer.

En el ejemplo siguiente, los gráficos se encuentran en Example.

Solución mod_rewrite Apache para bloquear el acceso a una imagen en línea

RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.\*$ RewriteRule .\*.gif$ - [F]

Solución Citrix ADC para bloquear el acceso a una imagen en línea

add patset pat1 bind patset pat1 .gif bind patset pat1 .jpeg add responder action act1 respondwith '"HTTP/1.1 403 Forbidden\r\n\r\n"' add responder policy pol1 '!HTTP.REQ.HEADER("Referer").EQ("") && !HTTP.REQ.HEADER("Referer").STARTSWITH("http://www.quux-corp.de/~quux/")&&HTTP.REQ.URL.ENDSWITH_ANY("pat1")' act1 bind responder global pol1 100

Creación de vínculos sin extensión

Para evitar que los usuarios conozcan los detalles de las aplicaciones o scripts en el lado del servidor, puede ocultar las extensiones de archivo a los usuarios. Para hacer esto, es posible que quiera admitir enlaces sin extensión. Puede lograr este comportamiento mediante el uso de reglas de reescritura para agregar una extensión a todas las solicitudes, o para agregar extensiones selectivamente a las solicitudes.

Los dos primeros ejemplos siguientes muestran la adición de una extensión a todas las URL de solicitud. En el último ejemplo, se agrega una de las dos extensiones de archivo. Tenga en cuenta que en el último ejemplo, el módulo mod_rewrite puede encontrar fácilmente la extensión de archivo porque este módulo reside en el servidor web. Por el contrario, Citrix ADC debe invocar una llamada HTTP para comprobar la extensión del archivo solicitado en el servidor web. En función de la respuesta de llamada, Citrix ADC agrega la extensión.html o.php a la URL de solicitud.

Nota

En el segundo ejemplo de Citrix ADC, se utiliza una llamada HTTP para consultar un script denominado file_check.cgi alojado en el servidor. Este script comprueba si el argumento que se proporciona en la llamada es un nombre de archivo válido.

Solución mod_rewrite Apache para agregar una extensión.php a todas las solicitudes

RewriteRule ^/?([a-z]+)$ $1.php [L]

Directiva Citrix ADC para agregar una extensión.php a todas las solicitudes

add rewrite action act1 insert_after 'HTTP.REQ.URL' '".php"' add rewrite policy pol1 'HTTP.REQ.URL.PATH.REGEX_MATCH(re#^/([a-z]+)$#)' act1 bind rewrite global pol1 100

Solución mod_rewrite de Apache para agregar extensiones.html o.php a las solicitudes

RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^/?([a-zA-Z0-9]+)$ $1.php [L] RewriteCond %{REQUEST_FILENAME}.html –f RewriteRule ^/?([a-zA-Z0-9]+)$ $1.html [L]

Directiva Citrix ADC para agregar extensiones.html o.php a las solicitudes

add HTTPCallout Call_html add HTTPCallout Call_php set policy httpCallout Call_html -IPAddress 10.102.59.101 -port 80 -hostExpr '"10.102.59.101"' -returnType BOOL -ResultExpr 'HTTP.RES.BODY(100).CONTAINS("True")' -urlStemExpr '"/cgi-bin/file_check.cgi"' -parameters query=http.req.url+".html" set policy httpCallout Call_php -IPAddress 10.102.59.101 -port 80 -hostExpr '"10.102.59.101"' -returnType BOOL -ResultExpr 'HTTP.RES.BODY(100).CONTAINS("True")' -urlStemExpr '"/cgi-bin/file_check.cgi"' -parameters query=http.req.url+".php" add patset pat1 bind patset pat1 .html bind patset pat1 .php bind patset pat1 .asp bind patset pat1 .cgi add rewrite action act1 insert_after 'HTTP.REQ.URL.PATH' '".html"' add rewrite action act2 insert_after "HTTP.REQ.URL.PATH" '".php"' add rewrite policy pol1 '!HTTP.REQ.URL.CONTAINS_ANY("pat1") && SYS.HTTP_CALLOUT(Call_html)' act1 add rewrite policy pol2 '!HTTP.REQ.URL.CONTAINS_ANY("pat1") && SYS.HTTP_CALLOUT(Call_php)' act2 bind rewrite global pol1 100 END bind rewrite global pol2 101 END

Redirigir un URI de trabajo a un nuevo formato

Supongamos que tiene un conjunto de direcciones URL de trabajo similares a las siguientes:

/index.php?id=nnnn

Para cambiar estas URL a /nnnn y asegurarse de que los motores de búsqueda actualizan sus índices al nuevo formato URI, debe hacer lo siguiente:

  • Redirija los antiguos URI a los nuevos para que los motores de búsqueda actualicen sus índices.
  • Vuelva a escribir el nuevo URI en el anterior para que el script index.php se ejecute correctamente.

Para lograr esto, puede insertar código de marcador en la cadena de consulta (asegurándose de que el código de marcador no sea visto por los visitantes) y luego eliminar el código de marcador para el script index.php.

Los siguientes ejemplos redirigen desde un vínculo antiguo a un nuevo formato solo si un marcador no está presente en la cadena de consulta. El vínculo que utiliza el nuevo formato se vuelve a escribir en el formato anterior y se agrega un marcador a la cadena de consulta.

Solución mod_rewrite de Apache

RewriteCond %{QUERY_STRING} !marker RewriteCond %{QUERY_STRING} id=([-a-zA-Z0-9_+]+) RewriteRule ^/?index.php$ %1? [R,L] RewriteRule ^/?([-a-zA-Z0-9_+]+)$ index.php?marker&id=$1 [L] Citrix ADC solution add responder action act_redirect redirect 'HTTP.REQ.URL.PATH.BEFORE_STR("index.php")+HTTP.REQ.URL.QUERY.VALUE("id")' -bypassSafetyCheck yes add responder policy pol_redirect '!HTTP.REQ.URL.QUERY.CONTAINS("marker")&& HTTP.REQ.URL.QUERY.VALUE("id").REGEX_MATCH(re/[-a-zA-Z0-9_+]+/) && HTTP.REQ.URL.PATH.CONTAINS("index.php")' act_redirect bind responder global pol_redirect 100 END add rewrite action act1 replace 'HTTP.REQ.URL.PATH.SUFFIX('/',0)' '"index.phpmarker&id="+HTTP.REQ.URL.PATH.SUFFIX('/',0)' -bypassSafetyCheck yes add rewrite policy pol1 '!HTTP.REQ.URL.QUERY.CONTAINS("marker")' act1 bind rewrite global pol1 100 END

Asegurarse de que se utiliza un servidor seguro para las páginas seleccionadas

Para asegurarse de que solo se utilizan servidores seguros para las páginas web seleccionadas, puede utilizar las siguientes directivas de código mod_rewrite de Apache o de Responder de Citrix ADC.

Solución mod_rewrite de Apache

RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/?(page1|page2|page3|page4|page5)$ https://www.example.com/%1 [R,L]

Solución Citrix ADC que utiliza expresiones regulares

add responder action res_redirect redirect '"https://www.example.com"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol_redirect '!CLIENT.TCP.DSTPORT.EQ(443)&&HTTP.REQ.URL.REGEX_MATCH(re/page[1-5]/)' res_redirect bind responder global pol_redirect 100 END

Solución Citrix ADC que utiliza conjuntos de patrones

add patset pat1 bind patset pat1 page1 bind patset pat1 page2 bind patset pat1 page3 bind patset pat1 page4 bind patset pat1 page5 add responder action res_redirect redirect '"https://www.example.com"+HTTP.REQ.URL' -bypassSafetyCheck yes add responder policy pol_redirect '!CLIENT.TCP.DSTPORT.EQ(443)&&HTTP.REQ.URL.CONTAINS_ANY("pat1")' res_redirect bind responder global pol_redirect 100 END
La versión oficial de este contenido está en inglés. Para mayor comodidad, parte del contenido de la documentación de Cloud Software Group solo tiene traducción automática. Cloud Software Group no puede controlar el contenido con traducción automática, que puede contener errores, imprecisiones o un lenguaje inadecuado. No se ofrece ninguna garantía, ni implícita ni explícita, en cuanto a la exactitud, la fiabilidad, la idoneidad o la precisión de las traducciones realizadas del original en inglés a cualquier otro idioma, o que su producto o servicio de Cloud Software Group se ajusten a cualquier contenido con traducción automática, y cualquier garantía provista bajo el contrato de licencia del usuario final o las condiciones de servicio, o cualquier otro contrato con Cloud Software Group, de que el producto o el servicio se ajusten a la documentación no se aplicará en cuanto dicha documentación se ha traducido automáticamente. Cloud Software Group no se hace responsable de los daños o los problemas que puedan surgir del uso del contenido traducido automáticamente.
Migración de reglas mod_rewrite de Apache a la sintaxis predeterminada

En este artículo