Configurar expresiones de directivas avanzadas en una directiva
Puede configurar una expresión de directiva avanzada de hasta 1.499 caracteres en una directiva. La interfaz de usuario de las expresiones de directivas avanzadas depende en cierta medida de la función para la que está configurando la expresión y de si está configurando una expresión para una directiva o para otro uso.
Al configurar expresiones en la línea de comandos, la delimita mediante comillas (“…” o “…”). Dentro de una expresión, se escapan las comillas adicionales mediante una barra diagonal inversa(). Por ejemplo, los siguientes son métodos estándar para escapar las comillas en una expresión:
"\"abc\""
‘\"abc\"’
También debe utilizar una barra diagonal inversa para escapar de los signos de interrogación y otras barras invertidas en la línea de comandos. Por ejemplo, la expresión http.req.url.contains (“?”) requiere una barra diagonal inversa para que se analiza el signo de interrogación. Tenga en cuenta que el carácter de barra diagonal inversa no aparecerá en la línea de comandos después de escribir el signo de interrogación. Por otro lado, si escapa una barra diagonal inversa (por ejemplo, en la expresión ‘http.req.url.contains (“\\ http”) ‘), los caracteres de escape se repiten en la línea de comandos.
Para que una entrada sea más legible, puede evitar las comillas de toda una expresión. Al principio de la expresión, introduce la secuencia de escape “q” más uno de los siguientes caracteres especiales:/{< | ~$^+=&%@# Configurar expresiones de directivas avanzadas en una directiva |
Puede configurar una expresión de directiva avanzada de hasta 1.499 caracteres en una directiva. La interfaz de usuario de las expresiones de directivas avanzadas depende en cierta medida de la función para la que está configurando la expresión y de si está configurando una expresión para una directiva o para otro uso.
Al configurar expresiones en la línea de comandos, la delimita mediante comillas (“…” o “…”). Dentro de una expresión, se escapan las comillas adicionales mediante una barra diagonal inversa(). Por ejemplo, los siguientes son métodos estándar para escapar las comillas en una expresión:
<!JEKYLL@5140@0>
<!JEKYLL@5140@1>
También debe utilizar una barra diagonal inversa para escapar de los signos de interrogación y otras barras invertidas en la línea de comandos. Por ejemplo, la expresión http.req.url.contains (“?”) requiere una barra diagonal inversa para que se analiza el signo de interrogación. Tenga en cuenta que el carácter de barra diagonal inversa no aparecerá en la línea de comandos después de escribir el signo de interrogación. Por otro lado, si escapa una barra diagonal inversa (por ejemplo, en la expresión ‘http.req.url.contains (“\\ http”) ‘), los caracteres de escape se repiten en la línea de comandos.
?.
Introduzca solo el carácter especial al final de la expresión, de la siguiente manera:
q@http.req.url.contains("sometext") && http.req.cookie.exists@
q~http.req.url.contains("sometext") && http.req.cookie.exists~
<!--NeedCopy-->
Tenga en cuenta que una expresión que utiliza {delimiter se cierra con}.
Para algunas funciones (por ejemplo, Almacenamiento en caché y respuesta integrados), el cuadro de diálogo de configuración de directivas proporciona un cuadro de diálogo secundario para configurar expresiones. Este cuadro de diálogo le permite elegir entre listas desplegables que muestran las opciones disponibles en cada punto durante la configuración de la expresión. No se pueden utilizar operadores aritméticos al utilizar estos cuadros de diálogo de configuración, pero la mayoría de las demás funciones avanzadas de expresión de directivas están disponibles. Para usar operadores aritméticos, escribe tus expresiones en formato libre.
Configurar una regla de sintaxis de directivas avanzada mediante la CLI
En el símbolo del sistema, escriba los siguientes comandos para configurar una regla de directiva avanzada y compruebe la configuración:
-
add cache|dns|rewrite|cs policyName **-rule** expression featureSpecificParameters **-action**
-
show cache|dns|rewrite|cs policyName
A continuación se muestra un ejemplo de configuración de una directiva de almacenamiento en caché:Ejemplo:
> add cache policy pol-cache -rule http.req.content_length.le(5) -action INVAL Done > show cache policy pol-cache Name: pol-cache Rule: http.req.content_length.le(5) CacheAction: INVAL Invalidate groups: DEFAULT UndefAction: Use Global Hits: 0 Undef Hits: 0 Done <!--NeedCopy-->
Configurar una expresión de directiva avanzada mediante la interfaz gráfica de usuario
-
En el panel de navegación, haga clic en el nombre de la función en la que quiere configurar una directiva; por ejemplo, puede seleccionar Almacenamiento en caché integrado, Respondedor, DNS, Reescritura o Cambio de contenido y, a continuación, hacer clic en Directivas.
-
Haga clic en Add.
-
Para la mayoría de las entidades, haga clic en el campo Expresión . Para cambiar contenido, haga clic en Configurar.
-
Haga clic en el icono Prefijo (la casa) y seleccione el primer prefijo de expresión de la lista desplegable. Por ejemplo, en Responder, las opciones son HTTP, SYS y CLIENT. El siguiente conjunto de opciones aplicables aparece en una lista desplegable.
-
Haga doble clic en la siguiente opción para seleccionarla y, a continuación, escriba un punto (.). De nuevo, aparece un conjunto de opciones aplicables en otra lista desplegable.
-
Continúe seleccionando opciones hasta que aparezca un campo de entrada (señalado entre paréntesis). Cuando aparezca un campo de entrada, introduzca un valor apropiado entre paréntesis. Por ejemplo, si selecciona GT (int) (formato mayor que, entero), especifica un entero entre paréntesis. Las cadenas de texto se delimitan entre comillas. A continuación se presenta un ejemplo:
HTTP.REQ.BODY(1000).BETWEEN("this","that")
-
Para insertar un operador entre dos partes de una expresión compuesta, haga clic en el icono Operadores (sigma) y seleccione el tipo de operador. A continuación se muestra un ejemplo de una expresión configurada con OR booleana (señalada por barras verticales dobles, ||):
HTTP.REQ.URL.EQ("www.mycompany.com")||HTTP.REQ.BODY(1000).BETWEEN("this","that")
-
Para insertar una expresión con nombre, haga clic en la flecha hacia abajo junto al icono Agregar (el signo más) y seleccione una expresión con nombre.
-
Para configurar una expresión mediante menús desplegables e insertar expresiones integradas, haga clic en el icono Agregar (el signo más). El cuadro de diálogo Agregar expresión funciona de forma similar al cuadro de diálogo principal, pero proporciona listas desplegables para seleccionar opciones y proporciona campos de texto para introducir datos en lugar de paréntesis. Este cuadro de diálogo también proporciona una lista desplegable Expresiones usadas con frecuencia que inserta expresiones de uso común. Cuando haya terminado de agregar la expresión, haga clic en Aceptar.
-
Cuando haya terminado, haga clic en Crear. Un mensaje en la barra de estado indica que la expresión de directiva se ha configurado correctamente.
Pruebe una expresión de directiva avanzada mediante la interfaz gráfica de usuario
- En el panel de navegación, haga clic en el nombre de la función para la que quiere configurar una directiva (por ejemplo, puede seleccionar Almacenamiento en caché integrado, Respondedor, DNS, Reescritura o Cambio de contenido) y, a continuación, haga clic en Directivas.
- Seleccione una directiva y haga clic en Abrir.
- Para probar la expresión, haga clic en el icono Evaluar (la marca de verificación).
- En el cuadro de diálogo evaluador de expresiones, seleccione el tipo de flujo que coincida con la expresión.
- En el campo Datos de solicitud HTTPo Datos de respuesta HTTP, pegue la solicitud o respuesta HTTP que quiere analizar con la expresión y haga clic en Evaluar. Tenga en cuenta que debe proporcionar una solicitud o respuesta HTTP completa y que el encabezado y el cuerpo deben estar separados por una línea en blanco. Algunos programas que atrapan encabezados HTTP no atrapan también la respuesta. Si va a copiar y pegar solo el encabezado, inserte una línea en blanco al final del encabezado para formar una solicitud o respuesta HTTP completa.
- Haga clic en Cerrar para cerrar este cuadro de diálogo.