Как реализовать фильтр «Не содержит» или отрицательный фильтр в Requestly

Как реализовать фильтр «Не содержит» или отрицательный фильтр в Requestly

Я используюРасширение по запросу Chrome и Firefoxдля настройки перенаправлений. У меня есть вариант использования, в котором я хочу переключить хост с www.a.com на www.b.com, за исключением случаев, когда у www.a.com есть определенный путь (например, www.a.com/do_not_switch)

Я знаю, что Requestly поддерживаетСоответствия Regex и WildCardно я не вижу возможности задать отрицательный фильтр - что-то вроде «Не содержит».

Нужна помощь в достижении этого варианта использования. Вот пример

Перенаправить https://gsd.zgjx.zwa.com/* -->https://asc.zxc.com/*

кроме https://gsd.zgjx.zwa.com/gsd/translation/...

PS: Задаю этот вопрос от имени пользователя, поскольку решение этой проблемы является общим и будет применимо/полезно для других пользователей в будущем.

решение1

Requestly не поддерживает отрицательный фильтр (например, «Не содержит»), но вы можете использовать простой трюк, чтобы решить эту проблему.

Краткое содержание

Я решил и создал правило для вас. Пожалуйста, выполните следующие шаги

  1. УстановитьПо запросу
  2. Открытьhttps://app.requestly.in/rules/#sharedList/1566298072114-Negative-Filter-example-support-request
  3. Нажмите Import Listкнопку вверху справа

Подробности

Шаг 1. Измените имя хоста на другое, если URL соответствует вашему условию исключения.

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

Шаг 2 — Определите общую пару для настройки перенаправления

В следующей паре добавьте логику перенаправления в общем для всех путей. Обратите внимание, что она не будет применяться к вашему пути исключения, поскольку имя хоста уже было изменено в первой паре.

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

Шаг 3 — Верните фиктивное имя хоста к исходному

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

Вот скриншот, который поможет вам с визуальным представлением

введите описание изображения здесь

Дайте мне знать, если у вас что-то не получится.

решение2

Чтобы решить эту проблему, мы используем RegEx negative lookahead assertion (?!...). Нужна только одна пара.

Я уже создал правило.Чтобы использовать его, просто откройте ссылку, нажмите Import to My Rulesкнопку вверху справа и протестируйте.

Кроме того, вы можете создать правило вручную:

  1. Создайте новое правило.

  2. В If requestразделе выберите Matches (RegEx)в выпадающем меню оператора.

  3. Вставьте этот код RegEx в поле:

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

    Самая важная часть — это бит списка \.com(?!\/gsd\/translation). Он говорит, что если .comестьнетзатем следует /gsd/translation, тогда URL-адрес совпадает.

    Вот пошаговое объяснение RegEx.

  4. Вставьте это в Redirects toполе раздела.

    https://asc.zxc.com/
    
  5. Ваше правило должно выглядеть такэтот.

  6. Сохраните и протестируйте свое правило.

Связанный контент