我在用請求 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)
在運算子下拉式選單中進行選擇。將此正規表示式程式碼貼到欄位中:
/^https:\/\/gsd\.zgjx\.zwa\.com(?!\/gsd\/translation)/
最重要的部分是列表位
\.com(?!\/gsd\/translation)
。它是說如果.com
是不是後跟/gsd/translation
,則 URL 相符。在
Redirects to
部分中,將其貼到其欄位中。https://asc.zxc.com/
你的規則應該是這樣的這。
儲存並測試您的規則。