Cómo implementar el filtro "No contiene" o negativo en Requestly

Cómo implementar el filtro "No contiene" o negativo en Requestly

estoy usandoExtensión solicitada para Chrome y Firefoxpara configurar redirecciones. Tengo un caso de uso en el que quiero cambiar el host de, por ejemplo, www.a.com a www.b.com, excepto cuando www.a.com tiene una ruta específica (por ejemplo, www.a.com/do_not_switch).

Sé que Requestly apoyaCoincidencias de expresiones regulares y comodinespero no veo una opción para proporcionar un filtro negativo, algo así como No contiene.

Necesita ayuda para lograr este caso de uso. Aquí está el ejemplo

Redirigir https://gsd.zgjx.zwa.com/* -->https://asc.zxc.com/*

excepto https://gsd.zgjx.zwa.com/gsd/translation/...

PD: publicar esta pregunta en nombre de un usuario ya que la solución a este problema es genérica y será aplicable/útil para otros usuarios en el futuro.

Respuesta1

Requestly no admite filtros negativos (por ejemplo, no contiene), pero puede utilizar un truco sencillo para resolver este caso de uso.

Resumen

He resuelto y creado la regla para ti. Por favor sigue estos pasos

  1. Instalarsolicitamente
  2. Abiertohttps://app.requestly.in/rules/#sharedList/1566298072114-Negative-Filter-example-support-request
  3. Haga clic en Import Listel botón en la parte superior derecha

Detalles

Paso 1: cambie el nombre de host por otro cuando la URL coincida con su condición de excepción

URL Matches (WildCard) https://gsd.zgjx.zwa.com/gsd/translation/*
Destination https://www.dummyhost.com/gsd/translation/$1

Paso 2: defina un par genérico para configurar la redirección

En el siguiente par, agregue la lógica de redirección de forma genérica para todas las rutas. Tenga en cuenta que no se aplicará a su ruta de excepción porque el nombre de host ya se cambió en el primer par.

URL Matches (WildCard) https://gsd.zgjx.zwa.com/*
Destination https://asc.zxc.com/$1

Paso 3: revierta el nombre de host ficticio al original

URL Matches (Wildcard) https://www.dummyhost.com/gsd/translation/*
https://gsd.zgjx.zwa.com/gsd/translation/$1

Aquí hay una captura de pantalla para ayudarlo con la imagen.

ingrese la descripción de la imagen aquí

Déjame saber si no te funciona.

Respuesta2

Para resolver esto, utilizamos la aserción de anticipación negativa RegEx (?!...). Sólo se necesita un par.

Ya he creado la regla.Para usarlo, simplemente abra el enlace, haga clic en el Import to My Rulesbotón en la parte superior derecha y pruébelo.

Alternativamente, puedes crear la regla manualmente:

  1. Crea una nueva regla.

  2. En la If requestsección, elija Matches (RegEx)en el menú desplegable del operador.

  3. Pegue este código RegEx en el campo:

    /^https:\/\/gsd\.zgjx\.zwa\.com(?!\/gsd\/translation)/
    

    La parte más importante es esa lista \.com(?!\/gsd\/translation). Está diciendo que si .comesnoseguido de /gsd/translation, luego la URL coincide.

    Aquí hay una explicación paso a paso de RegEx.

  4. En la Redirects tosección, pegue esto en su campo.

    https://asc.zxc.com/
    
  5. Tu regla debería verse asíeste.

  6. Guarde y pruebe su regla.

información relacionada