如何在 Requestly 中实现“不包含”或否定过滤

如何在 Requestly 中实现“不包含”或否定过滤

我在用Requestly Chrome 和 Firefox 扩展程序设置重定向。我有一个用例,我想将主机从 www.a.com 切换到 www.b.com,除非 www.a.com 有特定路径(例如 www.a.com/do_not_switch)

我知道 Requestly 支持正则表达式和通配符匹配但我没有看到提供负面过滤的选项——例如“不包含”。

需要帮助来实现此用例。以下是示例

重定向 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 负向前瞻断言(?!...)。只需要一对。

我已经创建了规则。要使用它,只需打开链接,单击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. 保存并测试您的规则。

相关内容