Primeiros Passos
Esta página descreve casos de uso comuns para a criação de regras no aplicativo Redirect Web.
(Você também pode aprender os detalhes das configurações de regras na página Configurações de Regras.)
Caso 1: Abrir outro site
Suponha que você seja viciado em Twitter e decida meditar no Insight Timer sempre que acidentalmente abrir o Twitter. Vamos criar uma regra para isso!
Passo 1. Configurar "Redirecionar De"
Primeiro, você deve configurar a seção Redirecionar De na tela Editar Regra do aplicativo. Os alvos são URLs que começam com https://twitter.com/
.
Nesse caso, você pode especificar o seguinte padrão com o modo Coringa (Wildcard):
https://twitter.com/*
No modo Coringa, *
significa que ele corresponde a qualquer coisa (= zero ou mais caracteres).
No entanto, espere. twitter.com
foi renomeado para x.com
. Você pode simplesmente substituir twitter.com
por x.com
, mas ninguém sabe quando o novo proprietário mudará de ideia novamente para reverter. Portanto, vamos ter como alvo tanto twitter.com
quanto x.com
.
Para fazer isso, mude de Coringa para Expressão Regular e defina este como o padrão:
https://(twitter|x).com/.*
(twitter|x)
: visa tantotwitter
quantox
. (|
é chamado de pipe.).*
: É o mesmo que o*
do Coringa. Mais especificamente,.
significa qualquer caractere e*
significa qualquer coisa antes deste símbolo repetida qualquer número de vezes, resultando em ele corresponder a qualquer coisa.
A Expressão Regular é um pouco complicada, mas uma vez que você se acostuma, torna-se uma ferramenta poderosa. Recomendamos usar o RegExr como um parque de testes para analisar como seu padrão de Expressão Regular funciona.
[!NOTA] Em Expressões Regulares,
.
em(twitter|x).com
também é tratado como qualquer caractere. Portanto,(twitter|x).com/.*
também corresponde, por exemplo, atwitter1com/
oux_com/
.Para evitar isso, você pode alterá-lo para
(twitter|x)\.com/.*
.\
é usado para escapar de um caractere especial.No entanto, não existem tais URLs no ambiente geral da internet. Portanto, você pode deixar
.
como um caractere especial se preferir. Sua regra é para seu próprio uso, então implemente-a como achar melhor.
Passo 2: Configurar "Redirecionar Para"
Basta especificar a URL da seguinte forma:
https://insighttimer.com/saraauster/guided-meditations/calm
Agora, o Redirect Web leva você à meditação quando você acessa o Twitter!
Caso 2: Remover Parâmetros de Consulta da URL
Suponha que haja um parâmetro de consulta source=twitter
em uma URL de example.com
, e você decidiu removê-lo para se anonimizar.
Nesse caso, a opção Processamento de Grupo de Captura é a maneira mais fácil:
- Redirecionar De:
https://example.com/*
(Coringa) - Redirecionar Para:
$0
- Processamento de Grupo de Captura:
- Grupo:
$0
- Processo: Substituir Ocorrências
- Alvo:
&?source=[^&]*
- Substituição: (nenhum)
- Padrão de Texto: Expressão Regular
- Alvo:
- Grupo:
Esta regra funciona da seguinte forma:
https://example.com/?source=twitter
↪ https://example.com/?
https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar
Se você quiser remover mais parâmetros, adicione mais processos.
Caso 3: Adicionar Parâmetros de Consulta à URL
Digamos que haja um site chamado example.com
que exibe um layout móvel por padrão, mas você prefere o layout de desktop. Felizmente, o site suporta um parâmetro de consulta layout
para especificar qual layout o site exibe. Vamos criar uma regra que adiciona layout=desktop
automaticamente.
Talvez você pense que poderia defini-lo da seguinte forma:
- Redirecionar De:
https://example.com/.*
(Expressão Regular) - Redirecionar Para:
$0?layout=desktop
$0
referencia a URL de destino. Se você tentar acessar example.com/hello
, você será redirecionado para example.com/hello?layout=desktop
. Essa funcionalidade é chamada de substituição.
[!DICA] A substituição também está disponível para o modo Coringa, pois é convertida internamente para Expressão Regular.
No entanto, há alguns problemas com essas configurações.
Problema 1: Loop infinito
A configuração atual cria um loop de redirecionamento infinito, já que https://example.com/.*
também tem como alvo https://example.com/hello?layout=desktop
.
Nesse caso, você pode especificar um padrão de URL excluído que permite que você acesse sem redirecionamento, como este com Expressão Regular:
.*[&?]layout=[^&]*.*
.*
: Corresponde a qualquer coisa[&?]
: Corresponde a&
ou?
[^&]*
: Corresponde a qualquer coisa, exceto&
Problema 2: Não consegue lidar com parâmetros existentes corretamente
Se a URL de destino já possui outros parâmetros de consulta como example.com/hello?theme=dark
, o destino será example.com/hello?theme=dark?layout=desktop
(Haverá dois ?
na URL), mas você só pode unir os parâmetros com &
. ?
como caractere especial só é permitido no início dos parâmetros. Portanto, não é tratado como um parâmetro válido.
Nesse caso, altere as configurações assim:
- Redirecionar De:
(https://example.com/[^?]*)(\?(.*))?
- Redirecionar Para:
$1?layout=desktop&$3
Vamos dar uma olhada passo a passo.
(https://example.com/[^?]*)
: Corresponde à parte anterior ao caractere?
.[^?]*
corresponde a qualquer coisa, exceto?
.- Isso é envolvido por
()
para que você possa referenciá-lo com$1
mais tarde.
(\?(.*))?
: Corresponde a uma string que começa com?
, o que significa parâmetros de consulta.- Isso também corresponde a uma string vazia pelo quantificador
?
no final do padrão, que corresponde a zero ou uma vez. - Os
()
externos e os()
internos podem ser referenciados com$2
e$3
mais tarde.
- Isso também corresponde a uma string vazia pelo quantificador
RegExr pode ajudar você a entender os detalhes.
[!NOTA] O RegExr mostra um erro quando você não escapa
/
com\
. Embora você possa escapá-lo, não é necessário, pois o Redirect Web usa um motor diferente da Apple que não exige o escape.
Esta não é uma solução perfeita, pois redireciona example.com/hello
para example.com/hello?layout=desktop&
, o que inclui um &
desnecessário no final da URL. Não é um grande problema em geral, mas se você deseja removê-lo, pode usar o Processamento de Grupo de Captura.
Em conclusão, esta é a saída final:
- Redirecionar De:
(https://example.com/[^?]*)((\?(.*))?)
(Expressão Regular) - Redirecionar Para:
$1?layout=desktop$3
- Padrão de URL Excluído:
.*[&?]layout=[^&]*.*
(Expressão Regular) - Processamento de Grupo de Captura:
- Grupo:
$3
- Processo: Substituir Ocorrências
- Alvo:
\?(.*)
- Substituição:
&$1
- Alvo:
- Grupo:
Isto é meramente um exemplo. Você também pode criar múltiplas regras para lidar com cada problema. Pode ser muito mais simples.