javascript Chrome扩展:使用regexSubstitution重定向,但保留路径(如果存在)

bnl4lu3b  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(115)

我试图创建一个扩展,自动改变网址从amazon.comamazon.de,同时保持路径,如果一个路径是使用chrome.declarativeNetRequest。
https://developer.chrome.com/docs/extensions/reference/declarativeNetRequest/
我尝试了多种方法,以下方法几乎可以正常工作。问题是URL更改为https://www.amazon.de%241/而不是https://www.amazon.de/。如果我输入给定路径的链接,也会发生同样的事情。它总是重定向到https://www.amazon.de%241/
在manifest.json文件中,我添加了以下行
manifest.json

[...]
 "declarative_net_request": {
        "rule_resources": [{
            "id": "ruleset_1",
            "enabled": true,
            "path": "rule.json"
        }]
    },
    "permissions": [
        "declarativeNetRequest",
        "declarativeNetRequestFeedback"
    ],

[...]

rule.json

[
   {
      "id":1,
      "priority":1,
      "action":{
         "type":"redirect",
         "redirect":{
            "regexSubstitution":"https://www.amazon.de$1"
         }
      },
      "condition":{
         "regexFilter":"^https://www\\.amazon\\.com(/.*)?$",
         "resourceTypes":[
            "main_frame"
         ]
      }
   }
]
b4lqfgs4

b4lqfgs41#

要修复它,请将$1替换为\1,如文档所示。

一个性能更好的替代方法是使用urlFilter + transform:

[{
  "id": 1,
  "condition": {
    "urlFilter": "|https://www.amazon.com/",
    "resourceTypes": ["main_frame"]
  },
  "action": {
    "type": "redirect",
    "redirect": {
      "transform": {
        "host": "www.amazon.de"
      }
    }
  }
}]

相关问题