跳到主要内容

规则设置

本页面提供了 Redirect Web 应用程序中“编辑规则”屏幕中每个设置的详细信息。

选项

类型

指定类型选项以控制应用程序如何处理重定向。您可以选择以下选项:

  • 原始(默认)
    • 这使用传统的 Web API 来控制重定向。此外,它还使用 Tabs API 作为备用。
    • 您可以使用除 资源类型请求方法 之外的所有选项。
    • 这比 声明式 类型慢,并且可能会导致额外的网络请求。
  • DNR(Safari 实验性功能):
    • 此类型比原始类型快得多,因为它不会为源 URL 启动网络请求。
    • 这允许您指定 资源类型请求方法
    • ⚠️ 您不能使用某些选项,例如 捕获组处理排除的 URL 模式,因为它们尚未被 DNR API 支持。
    • ⚠️ 在 Safari 中,目前您不能在正则表达式模式中包含管道 (|)。详细信息
    • ⚠️ 由于 Safari 的 DNR API 仍然存在一些问题,我们认为它仍然是 Safari 的实验性功能。您可以在此处找到所有已知问题的列表。

重定向来源

重定向来源选项允许您指定要从中重定向的网页的 URL 模式。您可以选择 通配符正则表达式

例如,如果您使用通配符指定 https://example.com/*,它将匹配 https://example.com/https://example.com/hello

备注

在“重定向到”选项中,您可以使用 $0 引用整个匹配项,或使用 $1$2 等引用部分匹配项。请查看本页 URL 模式 中的详细信息。

资源类型

Supported Types: DNR

资源类型选项允许您指定规则适用的 Web 请求类别,例如图像、JavaScript 和样式表。 例如,如果您设置 script,则可以重定向网页加载的 JavaScript 文件。

目前,这些可用: main_framesub_framestylesheetscriptimagefontxmlhttprequestpingmediawebsocketother

默认设置为 main_frame,它是加载到选项卡中的顶级页面。

请在 mdn web docs 中查看每种资源类型的详细信息。

请求方法

Supported Types: DNR

请求方法选项允许您设置源 URL 的目标 HTTP 方法。

默认情况下设置所有方法。

请在 mdn web docs 中查看每种方法的详细信息。

注意

在 Safari 中,此选项可能不可用,因为 Apple 对 DNR 类型的实现目前似乎不支持它。我们已将反馈发送给 Apple,反馈编号为 FB14502272。

目标浏览器

Supported Platforms: macOS

目标浏览器选项允许您指定规则应该或不应该应用于哪个浏览器。

  • 您可以选择两种类型的浏览器:
    • 默认可选择的浏览器:您可以默认选择 Safari、Chrome、Firefox、Edge、Opera、Arc、Brave 和 Vivaldi。这不区分同一浏览器的变体,例如 Safari 和 Safari Technology Preview。
    • 用户指定的浏览器:通过点击弹出窗口上的“添加”按钮,您可以选择除 Safari 或 Safari Technology Preview 之外的任何已安装 Redirect Web 扩展程序的浏览器。
  • 除选定项外所有复选框允许您定位除您选择的浏览器之外的所有浏览器。
注意

Redirect Web 无法区分浏览器是 Safari 还是 Safari Technology Preview,因为应用程序会检查扩展程序的父进程来检测它,但这两个浏览器共享相同的父进程 (/sbin/launchd)。

重定向到

重定向到选项指定您希望从与 重定向来源 选项匹配的源 URL 重定向到的目标 URL。您还可以使用 $1$2 等替换捕获组,或使用 $0 替换整个匹配项。这些有助于您动态指定目标。请查看本页 URL 模式 中的详细信息。

例如,如果您设置以下规则:

  • 重定向来源https://google.com/*(通配符)
  • 重定向到https://apple.com/$1

如果它匹配 https://google.com/hello,则目标 URL 将是 https://apple.com/hello

此外,您可以在进行替换之前修改 $1$2 等的文本。请查看 捕获组处理 部分了解详细信息。

提示

您可以指定自定义 URL 方案来打开应用程序。以下是支持深度链接的应用程序示例:

  • Figma:figma://file/Your_Figma_ID
  • Firefox:firefox://open-url?url=https://example.com/hello
  • Google Chrome:googlechromes://example.com
  • Microsoft Edge:microsoft-edge://example.com
  • Notion:notion://www.notion.so/Your_Note_ID
  • Slack:slack://open

应用程序

Supported Types: Original Supported Platforms: macOS

如果您想指定要打开目标 URL 的应用程序,请使用应用程序组合框。此功能仅在 macOS 上可用。

注意

您只能打开支持 App Sandbox 的应用程序。此外,请确保该应用程序支持打开您要打开的 URL。

捕获组处理

Supported Types: Original

捕获组处理选项允许您指定如何处理您可以在“重定向到”选项中使用 $1$2... 替换的捕获组。

以下是创建捕获组的方法:

  • 通配符:与 *? 匹配的文本会自动捕获。
  • 正则表达式:与模式中 () 内部分匹配的文本会被捕获。

您可以选择以下一个或多个处理:

  • URL 编码/解码:这会将 百分比编码 或解码应用于捕获组。例如,如果您编码 https://example.com/hello,它将转换为 https%3A%2F%2Fexample.com%2Fhello。解码则相反。
  • Base64 编码/解码:这会将文本解码/编码为 Base64。例如,您可以将 hello 编码为 aGVsbG8=,然后将其解码回 hello
  • 替换出现次数:这会将组中与目标匹配的一个或多个字符替换为替换。例如,如果 hello目标l替换y,则它将修改为 heyyo
备注

这用于处理每个捕获组,并且不影响 排除的 URL 模式 排除的 URL。例如,假设您有以下规则:

  • 重定向来源https://example.com/(hello.*)
  • 捕获组处理
    • 组:$1
    • 目标:.*(正则表达式)
    • 替换:hello
  • 排除的 URL 模式https://example.com/hello

在这种情况下,https://example.com/hello_world 将不会被排除,而 https://example.com/hello 将被排除。

排除的 URL 模式

Supported Types: Original

排除的 URL 模式选项允许您指定不重定向的 URL。这对于避免重定向循环或将网站的某些部分排除在重定向之外很有用。

您可以使用正则表达式或通配符模式类型指定排除的 URL 模式。

示例

示例选项允许您通过提供示例 URL 来测试重定向规则。通过添加示例 URL,您可以在实际应用规则之前检查规则是否按预期工作。

评论

评论选项允许您添加有关重定向规则的任何注释或评论。这对于跟踪您创建特定规则的原因或为可能查看您的规则的其他人提供上下文很有用。

URL 模式

有 3 个选项可以指定一个或多个 URL 模式。重定向来源排除的 URL 模式捕获组处理。要指定它们,您可以选择通配符正则表达式

通配符

通配符是一种更简单的模式类型,允许您使用 *(匹配任何内容)和 ?(匹配任何单个字符)作为通配符。以下是一些示例:

  • 要匹配 https://example.com/hello,您可以使用 https://example.com/*。这将匹配 https://example.com/ 之后的任何字符串。
  • 要匹配 https://example.com/search?q=hello,您可以使用 https://example.com/search?q=*。这将匹配 q 参数的任何值。
  • 要匹配包含单词 blog 的任何 URL,您可以使用 *blog*

您也可以在通配符中使用替换,这意味着您可以使用 $1$2 等引用匹配 URL 的部分,或使用 $0 引用整个匹配项。例如,如果您使用 https://example.com/*-world-*,并且 URL 是 https://example.com/hello-world-goodbye,则 $1 将是“hello”,$2 将是“goodbye”。$0 也可用于引用整个匹配的 URL。

备注

尽管替换是正则表达式的一个功能,但您也可以将其用于通配符,因为 Redirect Web 会在内部将通配符转换为正则表达式。

正则表达式

正则表达式 (Regex) 是一种强大的工具,用于匹配文本中的模式,由 Apple 的正则表达式引擎提供支持,该引擎在此处描述。它允许您定义一个特定模式,该模式匹配一组字符串。以下是一些示例。

  • 要匹配 https://example.com/hello,您可以使用 https://example.com/(.*)。这将匹配 https://example.com/ 之后的任何字符串并将其存储在捕获组中。
  • 要匹配 https://example.com/search?q=hello,您可以使用 https://example.com/search\?q=(.*)。这将匹配 q 参数的值并将其存储在捕获组中。
  • 要匹配包含单词 blog 的任何 URL,您可以使用 .*blog.*

您可以使用 $1$2... 在 重定向到替换 中引用捕获组,或使用 $0 引用整个匹配项。

有关正则表达式语法的更多信息,请参阅 RegExr 等资源。