![如何在 Requestly 中实现“不包含”或否定过滤](https://linux22.com/image/1601090/%E5%A6%82%E4%BD%95%E5%9C%A8%20Requestly%20%E4%B8%AD%E5%AE%9E%E7%8E%B0%E2%80%9C%E4%B8%8D%E5%8C%85%E5%90%AB%E2%80%9D%E6%88%96%E5%90%A6%E5%AE%9A%E8%BF%87%E6%BB%A4.png)
我在用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 不支持负面过滤(例如不包含),但您可以使用一个简单的技巧来解决这个用例。
概括
我已经为您解决并创建了规则。请按照以下步骤操作
- 安装请求式
- 打开https://app.requestly.in/rules/#sharedList/1566298072114-Negative-Filter-example-support-request
- 点击
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
右上角的按钮,然后测试它。
或者,您可以手动创建规则:
创建新规则。
在部分中,在操作员下拉菜单中
If request
选择。Matches (RegEx)
将此 RegEx 代码粘贴到字段中:
/^https:\/\/gsd\.zgjx\.zwa\.com(?!\/gsd\/translation)/
最重要的部分是列表位
\.com(?!\/gsd\/translation)
。它表示如果.com
是不是后面跟着/gsd/translation
,那么 URL 就匹配了。在该
Redirects to
部分中,将其粘贴到其字段中。https://asc.zxc.com/
你的规则应该是这样的这。
保存并测试您的规则。