Настройки правила
На этой странице представлена подробная информация о каждой настройке на экране "Редактировать правило" в веб-приложении Redirect Web.
Опции
Тип
Укажите опцию Тип, чтобы контролировать, как приложение обрабатывает перенаправление. Вы можете выбрать из следующих:
- Original (По умолчанию)
- Использует традиционные Web API для управления перенаправлением. Дополнительно использует Tabs API для запасного варианта.
- В Firefox используется WebRequest API для обработки перенаправления.
- Вы можете использовать все опции, кроме Типы ресурсов и Методы запроса.
- Это медленнее, чем тип Declarative, и может вызывать дополнительные сетевые запросы.
- Использует традиционные Web API для управления перенаправлением. Дополнительно использует Tabs API для запасного варианта.
- DNR (Экспериментально для Safari):
- Этот тип работает намного быстрее, чем тип Original, поскольку он не инициирует сетевой запрос для исходного URL.
- Это позволяет указывать Типы ресурсов и Методы запроса.
- ⚠️ Вы не можете использовать некоторые опции, такие как Обработка захваченных групп и Исключенные шаблоны URL, поскольку они еще не поддерживаются DNR API.
- ⚠️ В Safari в настоящее время вы не можете включать символы пайпа (
|
) в ваш шаблон регулярного выражения. Подробнее - ⚠️ Поскольку DNR API Safari все еще имеет некоторые проблемы, мы считаем, что это все еще экспериментальная функция для Safari. Список всех известных проблем можно найти здесь.
Перенаправлять с
Опция Перенаправлять с позволяет указать шаблон 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 web docs.
Методы запроса
Опция Методы запроса позволяет установить целевые HTTP-методы исходного URL.
По умолчанию установлены все методы.
Подробности о каждом методе можно найти в mdn web docs.
В Safari эта опция может быть недоступна, так как реализация DNR типа от Apple, похоже, в настоящее время не обрабатывает ее. Мы отправили отзыв в 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/*
(Маска) - Перенаправлять на:
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
...
Вот как создаются захваченные группы:
- Маска: Тексты, соответствующие
*
и?
, автоматически захватываются. - Регулярное выражение: Тексты, соответствующие части шаблона внутри
()
, захватываются.
Вы можете выбрать один или несколько из следующих процессов:
- 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, используя типы шаблонов "Регулярное выражение" или "Маска".
Примеры
Опция Примеры позволяет протестировать ваше правило перенаправления, предоставив образцы 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
. - Чтобы соответствовать любому URL, который содержит слово
blog
, вы можете использовать*blog*
.
Вы также можете использовать подстановку в Маске, что означает, что вы можете ссылаться на части совпадающего URL, используя $1
, $2
и т. д. Например, если вы используете https://example.com/*-world-*
и URL — https://example.com/hello-world-goodbye
, тогда $1
будет "hello", а $2
— "goodbye". $0
также доступен для ссылки на весь совпавший URL.
[!Note] Хотя подстановка является функцией регулярных выражений, вы также можете использовать ее для маски, потому что 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
и сохранит его в захватывающей группе. - Чтобы соответствовать любому URL, содержащему слово
blog
, вы можете использовать.*blog.*
.
Вы можете ссылаться на захваченные группы в Перенаправлять на или Замена, используя $1
, $2
, ... или $0
для ссылки на все совпадение.
Более подробную информацию о синтаксисе Regex можно найти в таких ресурсах, как RegExr.