Перейти до основного вмісту

Початок роботи

Ця сторінка описує типові випадки використання для створення правил у програмі Redirect Web.

(Ви також можете дізнатися деталі налаштувань правил на сторінці Налаштування правил.)

Випадок 1: Відкрити інший веб-сайт

Припустимо, ви залежні від Twitter, і вирішили медитувати в Insight Timer щоразу, коли випадково відкриваєте Twitter. Давайте створимо правило для цього!

Крок 1. Налаштуйте "Перенаправити з"

Спочатку ви повинні налаштувати розділ Перенаправити з на екрані Редагувати правило в програмі. Цільовими є URL-адреси, що починаються з https://twitter.com/.

У цьому випадку ви можете вказати наступний шаблон у режимі Wildcard:

https://twitter.com/*

У режимі Wildcard * означає, що він відповідає будь-чому (= нуль або більше символів).

Однак, зачекайте. twitter.com було перейменовано на x.com. Ви можете просто замінити twitter.com на x.com, але ніхто не знає, коли новий власник знову передумає повернути його назад. Тому давайте націлимося як на twitter.com, так і на x.com.

Для цього переключіться з Wildcard на Регулярний вираз і встановіть це як шаблон:

https://(twitter|x).com/.*
  • (twitter|x): він націлений як на twitter, так і на x. (| називається вертикальною рискою.)
  • .*: Це те саме, що * у Wildcard. Точніше, . означає будь-який символ, а * означає будь-що перед цим символом, повторене будь-яку кількість разів, в результаті чого воно відповідає будь-чому.

Регулярний вираз трохи складний, але як тільки ви до нього звикнете, він стане потужним інструментом. Ми рекомендуємо використовувати RegExr як майданчик для аналізу того, як працює ваш шаблон регулярного виразу.

примітка

У регулярних виразах . у (twitter|x).com також розглядається як будь-який символ. Тому (twitter|x).com/.* також відповідає, наприклад, twitter1com/ або x_com/.

Щоб уникнути цього, ви можете змінити його на (twitter|x)\.com/.*. \ використовується для екранування спеціального символу.

Однак, таких URL-адрес у загальному інтернет-середовищі немає. Тому ви можете залишити . як спеціальний символ, якщо вам так зручніше. Ваше правило призначене для вашого власного використання, тому реалізуйте його так, як вважаєте за потрібне.

Крок 2: Налаштуйте "Перенаправити на"

Просто вкажіть URL-адресу наступним чином:

https://insighttimer.com/saraauster/guided-meditations/calm

Тепер Redirect Web переведе вас до медитації, коли ви зайдете в Twitter!

⬇️ Завантажити правило

Випадок 2: Видалити параметри запиту з URL-адреси

Припустимо, в URL-адресі example.com є параметр запиту source=twitter, і ви вирішили його видалити, щоб анонімізувати себе.

У цьому випадку найпростіший спосіб – це опція Обробка групи захоплення:

  • Перенаправити з: https://example.com/* (Wildcard)
  • Перенаправити на: $0
  • Обробка групи захоплення:
    • Група: $0
    • Процес: Замінити входження
      • Ціль: &?source=[^&]*
      • Заміна: (немає)
      • Текстовий шаблон: Регулярний вираз

⬇️ Завантажити правило

Це правило працює наступним чином:

https://example.com/?source=twitter
↪ https://example.com/?

https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar

Якщо ви хочете видалити більше параметрів, додайте більше процесів.

Випадок 3: Додати параметри запиту до URL-адреси

Припустимо, є веб-сайт під назвою example.com, який за замовчуванням відображає мобільний макет, але ви віддаєте перевагу його настільному макету. На щастя, веб-сайт підтримує параметр запиту layout для вказівки, який макет відображає веб-сайт. Давайте створимо правило, яке автоматично додає layout=desktop.

Можливо, ви думаєте, що можете визначити це наступним чином:

  • Перенаправити з: https://example.com/.* (Регулярний вираз)
  • Перенаправити на: $0?layout=desktop

$0 посилається на цільову URL-адресу. Якщо ви спробуєте отримати доступ до example.com/hello, вас буде перенаправлено на example.com/hello?layout=desktop. Ця функція називається підстановкою.

порада

Підстановка також доступна для режиму Wildcard, оскільки вона внутрішньо перетворюється на регулярний вираз.

Однак, є кілька проблем з цими налаштуваннями.

Проблема 1: Нескінченний цикл

Поточне налаштування створює нескінченний цикл перенаправлення, оскільки https://example.com/.* також націлений на https://example.com/hello?layout=desktop.

У цьому випадку ви можете вказати виключений шаблон URL-адреси, який дозволяє отримати доступ без перенаправлення, наприклад, за допомогою регулярного виразу:

.*[&?]layout=[^&]*.*
  • .*: Відповідає будь-чому
  • [&?]: Відповідає & або ?
  • [^&]*: Відповідає будь-чому, крім &

Проблема 2: Неможливо правильно обробити існуючі параметри

Якщо цільова URL-адреса вже має інші параметри запиту, такі як example.com/hello?theme=dark, призначення буде example.com/hello?theme=dark?layout=desktop (в URL-адресі є два ?), але ви можете об'єднати параметри лише за допомогою &. ? як спеціальний символ дозволено лише на початку параметрів. Тому він не розглядається як дійсний параметр.

У цьому випадку змініть налаштування так:

  • Перенаправити з: (https://example.com/[^?]*)(\(?(.*))?
  • Перенаправити на: $1?layout=desktop&$3

Давайте розглянемо крок за кроком.

  • (https://example.com/[^?]*): Відповідає частині до попереднього символу ?.
    • [^?]* відповідає будь-чому, крім ?.
    • Це обгорнуто (), тому ви можете посилатися на нього за допомогою $1 пізніше.
  • (\(?(.*))?: Відповідає рядку, що починається з ?, що означає параметри запиту.
    • Це також відповідає порожньому рядку за допомогою квантифікатора ? в кінці шаблону, який відповідає нулю або одному разу.
    • Зовнішні () та внутрішні () можуть бути посиланням на $2 та $3 пізніше.

RegExr може допомогти вам зрозуміти деталі.

примітка

RegExr показує помилку, коли ви не екрануєте / за допомогою \. Хоча ви можете екранувати його, це не обов'язково, оскільки Redirect Web використовує інший механізм від Apple, який не вимагає екранування.

Це не ідеальне рішення, оскільки воно перенаправляє example.com/hello на example.com/hello?layout=desktop&, що включає непотрібний & в кінці URL-адреси. Загалом це не велика проблема, але якщо ви хочете його видалити, ви можете використовувати Обробку групи захоплення.

На закінчення, це остаточний результат:

  • Перенаправити з: (https://example.com/[^?]*)((\(?(.*))?) (Регулярний вираз)
  • Перенаправити на: $1?layout=desktop&$3
  • Виключений шаблон URL-адреси: .*[&?]layout=[^&]*.* (Регулярний вираз)
  • Обробка групи захоплення:
    • Група: $3
    • Процес: Замінити входження
      • Ціль: \?(.*)
      • Заміна: &$1

⬇️ Завантажити правило

Це лише приклад. Ви також можете створити кілька правил для вирішення кожної проблеми. Це може бути набагато простіше.