Настройки правил
Эта страница содержит подробную информацию о каждой настройке на экране «Редактировать правило» в приложении Redirect Web.
Параметры
Тип
Укажите параметр Тип, чтобы контролировать, как приложение обрабатывает перенаправление. Вы можете выбрать из следующих:
- Оригинальный (по умолчанию)
- Использует традиционные веб-API для управления перенаправлением. Дополнительно использует Tabs API для резервного копирования.
- В Firefox используется WebRequest API для обработки перенаправления.
- Вы можете использовать все параметры, кроме Типов ресурсов и Методов запроса.
- Это медленнее, чем тип Декларативный, и может вызывать дополнительные сетевые запросы.
- Использует традиционные веб-API для управления перенаправлением. Дополнительно использует Tabs API для резервного копирования.
- DNR (Экспериментально для Safari):
- Этот тип работает намного быстрее, чем оригинальный тип, потому что он не инициирует сетевой запрос для исходного URL.
- Это позволяет указывать Типы ресурсов и Методы запроса.
- ⚠️ Вы не можете использовать некоторые параметры, такие как Обработка захватываемых групп и Исключенные шаблоны URL, поскольку они еще не поддерживаются DNR API.
- ⚠️ В Safari в настоящее время вы не можете включать пайпы (
|
) в свой шаблон регулярного выражения. Подробности - ⚠️ Поскольку DNR API Safari все еще имеет некоторые проблемы, мы считаем, что это все еще экспериментальная функция для Safari. Вы можете найти список всех известных проблем здесь.
Перенаправить из
Параметр Перенаправить из позволяет указать шаблон URL веб-страниц, с которых вы хотите перенаправить. Вы можете выбрать Wildcard или Регулярное выражение.
Например, если вы укажете https://example.com/*
с Wildcard, он будет соответствовать https://example.com/
или https://example.com/hello
.
В параметре «Перенаправить на» вы можете ссылаться на все совпадение с помощью $0
или на частичные совпадения с помощью $1
, $2
, ... Подробности см. в разделе Шаблон URL на этой странице.
Типы ресурсов
Параметр Типы ресурсов позволяет указать категории веб-запросов, такие как изображения, JavaScript и таблицы стилей, к которым применяется правило.
Например, если вы установите script
, вы можете перенаправлять файлы JavaScript, загружаемые веб-страницами.
В настоящее время доступны следующие:
main_frame
, sub_frame
, stylesheet
, script
, image
, font
, xmlhttprequest
, ping
, media
, websocket
, other
По умолчанию установлено значение main_frame
, которое является страницей верхнего уровня, загружаемой во вкладку.
Пожалуйста, проверьте подробности каждого типа ресурса в mdn web docs.
Методы запроса
Параметр Методы запроса позволяет установить целевые методы HTTP исходного URL.
Все методы установлены по умолчанию.
Пожалуйста, проверьте подробности каждого метода в mdn web docs.
В Safari этот параметр может быть недоступен, поскольку реализация Apple для типа DNR, похоже, в настоящее время не обрабатывает его. Мы отправили отзыв Apple как FB14502272.
Целевые браузеры
Параметр Целевые браузеры позволяет указать, к какому браузеру правило должно или не должно применяться.
- Есть 2 типа браузеров, которые вы можете выбрать:
- Браузеры, которые вы можете выбрать по умолчанию: Вы можете выбрать 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/*
(Wildcard) - Перенаправить на:
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
Приложение
Если вы хотите указать приложение, в котором вы хотите открыть целевой URL, используйте комбинированный список Приложение. Это доступно только на macOS.
Вы можете открыть только приложение, которое поддерживает App Sandbox. Также убедитесь, что приложение поддерживает открытие URL, который вы хотите открыть.
Обработка захватываемых групп
Параметр Обработка захватываемых групп позволяет указать, как обрабатывать захватываемые группы, которые вы можете подставлять в параметре Перенаправить на с помощью $1
, $2
...
Вот как создавать захватываемые группы:
- Wildcard: Тексты, соответствующие
*
и?
, автоматически захватываются. - Регулярное выражение: Тексты, соответствующие части шаблона внутри
()
, захватываются.
Вы можете выбрать один или несколько из следующих процессов:
- Кодирование/декодирование 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
Параметр Исключенные шаблоны URL позволяет указать URL-адреса, которые не перенаправляются. Это может быть полезно для предотвращения циклов перенаправления или для исключения определенных частей веб-сайта из перенаправления.
Вы можете указать исключенные шаблоны URL, используя типы шаблонов «Регулярное выражение» или «Wildcard».
Примеры
Параметр Примеры позволяет протестировать ваше правило перенаправления, предоставив примеры URL-адресов. Добавив пример URL, вы можете проверить, работает ли правило так, как ожидалось, прежде чем применять его.
Комментарии
Параметр Комментарии позволяет добавлять любые заметки или комментарии о вашем правиле перенаправления. Это может быть полезно для отслеживания того, почему вы создали определенное правило, или для предоставления контекста для других, кто может просматривать ваши правила.
Шаблон URL
Есть 3 параметра, в которых вы можете указать один или несколько шаблонов URL. Перенаправить из, Исключенные шаблоны URL и Обработка захватываемых групп. Чтобы указать их, вы можете выбрать Wildcard или Регулярное выражение.
Wildcard
Wildcard — это более простой тип шаблона, который позволяет использовать *
(соответствует всему) и ?
(соответствует любому одному символу) в качестве подстановочных знаков. Вот несколько примеров:
- Чтобы соответствовать
https://example.com/hello
, вы можете использоватьhttps://example.com/*
. Это будет соответствовать любой строке послеhttps://example.com/
. - Чтобы соответствовать
https://example.com/search?q=hello
, вы можете использоватьhttps://example.com/search?q=*
. Это будет соответствовать любому значению параметраq
. - Чтобы соответствовать любому URL, содержащему слово
blog
, вы можете использовать*blog*
.
Вы также можете использовать подстановку в Wildcard, что означает, что вы можете ссылаться на части соответствующего URL с помощью $1
, $2
и т. д. Например, если вы используете https://example.com/*-world-*
, а URL — https://example.com/hello-world-goodbye
, то $1
будет «hello», а $2
будет «goodbye». $0
также доступен для ссылки на весь соответствующий URL.
Хотя подстановка является функцией регулярного выражения, вы также можете использовать ее для Wildcard, потому что Redirect Web внутренне преобразует Wildcard в регулярное выражение.
Регулярное выражение
Регулярное выражение (Regex) — это мощный инструмент для сопоставления шаблонов в тексте, работающий на движке регулярных выражений Apple, который описан здесь. Он позволяет определить конкретный шаблон, который соответствует набору строк. Вот несколько примеров.
- Чтобы соответствовать
https://example.com/hello
, вы можете использоватьhttps://example.com/(.*)
. Это будет соответствовать любой строке послеhttps://example.com/
и сохранять ее в захватываемой группе. - Чтобы соответствовать
https://example.com/search?q=hello
, вы можете использоватьhttps://example.com/search\?q=(.*)
. Это будет соответствовать значению параметраq
и сохранять его в захватываемой группе. - Чтобы соответствовать любому URL, содержащему слово
blog
, вы можете использовать.*blog.*
.
Вы можете ссылаться на захватываемые группы в Перенаправить на или Замена с помощью $1
, $2
, ... или $0
для ссылки на все совпадение.
Более подробную информацию о синтаксисе Regex можно найти в таких ресурсах, как RegExr.