如何在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. 將此正規表示式程式碼貼到欄位中:

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

    最重要的部分是列表位\.com(?!\/gsd\/translation)。它是說如果.com不是後跟/gsd/translation,則 URL 相符。

    以下是正規表示式的逐步說明。

  4. Redirects to部分中,將其貼到其欄位中。

    https://asc.zxc.com/
    
  5. 你的規則應該是這樣的

  6. 儲存並測試您的規則。

相關內容