Преминете към основното съдържание

Първи стъпки

Тази страница описва често срещани случаи на употреба за създаване на правила в приложението 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 адрес

Да предположим, че има параметър на заявка source=twitter в URL адрес на example.com и сте решили да го премахнете, за да се анонимизирате.

В този случай опцията Обработка на групи за улавяне е най-лесният начин:

  • Пренасочване от: 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

⬇️ Изтеглете правилото

Това е просто пример. Можете също така да създадете множество правила за справяне с всеки проблем. Може да е много по-просто.