Настройки правил
На этой странице представлена подробная информация о каждой настройке на экране Редактировать правило в приложении RedirectWeb.
Параметры
Тип
Укажите параметр Тип, чтобы управлять тем, как приложение обрабатывает перенаправление. Вы можете выбрать один из следующих вариантов:
- Original (По умолчанию)
- Использует традиционные веб-API для управления перенаправлением. Кроме того, использует Tabs API в качестве резервного варианта.
- В Firefox для обработки перенаправления используется WebRequest API.
- Вы можете использовать все параметры, кроме Типов ресурсов и Методов запроса.
- ⚠️ Этот тип медленнее, чем Declarative, и может вызывать дополнительные сетевые запросы.
- Использует традиционные веб-API для управления перенаправлением. Кроме того, использует Tabs API в качестве резервного варианта.
- DNR (Экспериментально для Safari):
- Этот тип работает намного быстрее, чем Original, так как не инициирует сетевой запрос для исходного URL.
- Позволяет указывать Типы ресурсов и Методы запроса.
- ⚠️ Вы не можете использовать некоторые параметры, такие как Обработка захватывающих групп и Исключенные шаблоны URL, так как они еще не поддерживаются DNR API.
- ⚠️ В Safari в настоящее время нельзя использовать вертикальную черту (
|) в шаблоне регулярного выражения. Подробнее - ⚠️ Поскольку DNR API в Safari все еще имеет некоторые проблемы, мы считаем эту функцию экспериментальной для Safari. Список всех известных проблем можно найти здесь.
Откуда перенаправлять (Redirect From)
Параметр Откуда перенаправлять позволяет указать шаблон URL веб-страниц, с которых вы хотите выполнять перенаправление. Вы можете выбрать либо Подстановочный знак, либо Регулярное выражение.
Например, если вы укажете https://example.com/* с использованием подстановочного знака, это будет соответствовать 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.
Методы запроса
Параметр Методы запроса позволяет установить целевые HTTP-методы исходного URL.
По умолчанию выбраны все методы.
Пожалуйста, ознакомьтесь с подробностями о каждом методе в документации mdn.
В Safari этот параметр может быть недоступен, так как реализация DNR от Apple, похоже, не обрабатывает его в данный момент. Мы отправили отзыв в Apple (FB14502272).
Целевые браузеры
Параметр Целевые браузеры позволяет указать, к каким браузерам следует или не следует применять правило.
- Вы можете выбрать браузеры двух типов:
- Браузеры, доступные по умолчанию: Safari, Chrome, Firefox, Edge, Opera, Arc, Brave и Vivaldi. Это не разделяет варианты одного и того же браузера, такие как Safari и Safari Technology Preview.
- Браузеры, указанные пользователем: Нажав кнопку «Добавить» во всплывающем окне, вы можете выбрать любой браузер (кроме Safari или Safari Technology Preview), в котором установлено расширение RedirectWeb.
- Флажок Все, кроме выбранных позволяет применить правило ко всем браузерам, за исключением тех, которые вы выбрали.
RedirectWeb не может отличить Safari от Safari Technology Preview, так как приложение проверяет родительский процесс расширения для обнаружения, но эти два браузера имеют один и тот же родительский процесс (/sbin/launchd).
Куда перенаправлять (Redirect To)
Параметр Куда перенаправлять указывает 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 для открытия приложения. Вот примеры приложений, поддерживающих глубокие ссылки (deep linking):
- Figma:
figma://file/Ваш_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/Ваш_ID_заметки - Slack:
slack://open
Приложение
Если вы хотите указать приложение, в котором должен открыться URL-адрес назначения, используйте выпадающий список Приложение. Эта функция доступна только на macOS.
Вы можете открывать только те приложения, которые поддерживают App Sandbox. Также убедитесь, что приложение поддерживает открытие нужного вам URL-адреса.
Обработка захватывающих групп
Параметр Обработка захватывающих групп позволяет указать, как обрабатывать захваченные группы, которые вы можете подставлять в параметре Куда перенаправлять с помощью $1, $2...
Вот как создаются захватывающие группы:
- Подстановочный знак: Текст, соответствующий
*и?, захватывается автоматически. - Регулярное выражение: Текст, соответствующий части шаблона внутри
(), захватывается.
Вы можете выбрать один или несколько следующих процессов:
- URL Encode/Decode: Применяет процентное кодирование или декодирование к захватывающей группе. Например, если вы закодируете
https://example.com/hello, оно будет преобразовано вhttps%3A%2F%2Fexample.com%2Fhello. Декодирование работает в обратном порядке. - Base64 Encode/Decode: Декодирует/кодирует текст в Base64. Например, вы можете закодировать
helloвaGVsbG8=и декодировать обратно вhello. - Замена вхождений (Replace Occurrences): Заменяет один или несколько символов в группе, соответствующих Цели, на Замену. Например, если Группа —
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, используя типы шаблонов «Регулярное выражение» или «Подстановочный знак».
Примеры
Параметр Примеры позволяет протестировать ваше правило перенаправления, указав образцы URL-адресов. Добавив образец URL, вы можете проверить, работает ли правило должным образом, прежде чем применять его на практике.
Дополнительно
- [DNR] Перенаправление основного фрейма (Main Frame Redirection): Этот параметр доступен только для типа DNR. Он позволяет указать, как обрабатывать перенаправление для типа ресурса
main_frame. Доступные варианты:- Raw: Перенаправляет основной фрейм на указанный URL без каких-либо изменений.
- Через промежуточную страницу (Via Intermediate Page): Перенаправляет основной фрейм на промежуточную страницу, которая затем перенаправляет на конечный URL-адрес назначения. Это полезно для открытия приложений с использованием глубоких ссылок, так как промежуточная страница может обрабатывать более сложную логику перенаправления.
Комментарии
Параметр Комментарии позволяет добавлять любые заметки или пояснения к вашему правилу перенаправления. Это может быть полезно для отслеживания причин создания конкретного правила или для предоставления контекста другим людям, которые могут просматривать ваши правила.
Вы можете писать комментарии в следующих форматах:
- Обычный текст (По умолчанию): Простой текст без форматирования.
- Markdown: Вы можете использовать синтаксис Markdown от GitHub, включая некоторые расширения, которые GFM не поддерживает. Например, вы можете создавать заголовки, списки, ссылки и многое другое.
- AsciiDoc: Вы можете использовать синтаксис AsciiDoc для форматирования ваших комментариев.
Шаблон URL
Шаблоны URL используются для сопоставления URL-адресов в параметрах Откуда перенаправлять, Исключенные шаблоны URL и Обработка захватывающих групп*. Чтобы указать их, вы можете выбрать либо Подстановочный знак, либо Регулярное выражение.
Подстановочный знак (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*.
Вы также можете использовать подстановку и в подстановочных знаках, что означает возможность ссылки на части совпавшего URL-адреса с помощью $1, $2 и т. д. Например, если вы используете https://example.com/*-world-*, а URL-адрес — https://example.com/hello-world-goodbye, то $1 будет «hello», а $2 — «goodbye». Также доступен $0 для ссылки на весь совпавший URL целиком.
Хотя подстановка является функцией регулярных выражений, вы также можете использовать ее для подстановочных знаков, так как RedirectWeb внутренне преобразует подстановочные знаки в регулярные выражения.
Регулярное выражение
Регулярное выражение (Regex) — это мощный инструмент для поиска шаблонов в тексте, который широко используется в программировании. Оно позволяет определить конкретный шаблон, соответствующий набору строк. Вот несколько примеров.
- Чтобы сопоставить
https://example.com/hello, вы можете использоватьhttps://example.com/.*. Это будет соответствовать любой строке послеhttps://example.com/. - Чтобы сопоставить
https://example.com/search?q=hello, вы можете использоватьhttps://example.com/search\?q=(.*). Это позволит сопоставить значение параметраqи сохранить его в захватывающей группе. Затем вы можете сослаться на него с помощью$1в параметре Куда перенаправлять. - Чтобы сопоставить любой URL-адрес, содержащий слово
blog, вы можете использовать.*blog.*.
Вы можете ссылаться на захватывающие группы в параметрах Куда перенаправлять или Замена, используя $1, $2, ... или $0 для ссылки на все совпадение целиком.
RedirectWeb работает на базе движка регулярных выражений Apple.
Дополнительную информацию о синтаксисе регулярных выражений можно найти в таких ресурсах, как RegExr.