Първи стъпки
Тази страница описва често срещани случаи на употреба за създаване на правила в приложението 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
- Цел:
- Група:
Това е просто пример. Можете също така да създадете множество правила за справяне с всеки проблем. Може да е много по-просто.