Primeiros Passos
Esta página descreve casos de uso comuns para criar 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 abrir o Twitter acidentalmente. Vamos criar uma regra para isso!
Passo 1. Configurar "Redirecionar De"
Primeiro, você deve configurar a seção Redirecionar De na tela Editar Regra no aplicativo. Os alvos são URLs que começam com https://twitter.com/
.
Neste caso, você pode especificar o seguinte padrão com o modo Curinga:
https://twitter.com/*
No modo Curinga, *
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 direcionar tanto twitter.com
quanto x.com
.
Para fazer isso, mude de Curinga para Expressão Regular e defina este como o padrão:
https://(twitter|x).com/.*
(twitter|x)
: ele direciona tantotwitter
quantox
. (|
é chamado de pipe.).*
: É o mesmo que*
do Curinga. Mais especificamente,.
significa qualquer caractere e*
significa qualquer coisa antes deste símbolo repetida qualquer número de vezes, resultando em corresponder a qualquer coisa.
Expressão Regular é um pouco complicada, mas depois que você se acostuma, ela se torna uma ferramenta poderosa. Recomendamos usar RegExr como um playground para analisar como seu padrão de Expressão Regular funciona.
Em Expressões Regulares, .
em (twitter|x).com
também é tratado como qualquer caractere. Portanto, (twitter|x).com/.*
também corresponde, por exemplo, twitter1com/
ou x_com/
.
Para evitar isso, você pode alterá-lo para (twitter|x)\.com/.*
. \
é usado para escapar 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 o leva à 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.
Neste caso, a opção Processamento de Grupo de Captura é a maneira mais fácil:
- Redirecionar De:
https://example.com/*
(Curinga) - 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 existe um site chamado example.com
que mostra 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
faz referência à URL de destino. Se você tentar acessar example.com/hello
, você será redirecionado para example.com/hello?layout=desktop
. Este recurso é chamado de substituição.
A substituição também está disponível para o modo Curinga, pois é convertida internamente para Expressão Regular.
No entanto, existem alguns problemas com essas configurações.
Problema 1: Loop infinito
A configuração atual cria um loop de redirecionamento infinito, pois https://example.com/.*
também direciona para https://example.com/hello?layout=desktop
.
Neste caso, você pode especificar um padrão de URL excluído que permite o acesso 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á tiver outros parâmetros de consulta como example.com/hello?theme=dark
, o destino será example.com/hello?theme=dark?layout=desktop
(Existem dois ?
na URL), mas você só pode unir os parâmetros com &
. ?
como um caractere especial só é permitido no início dos parâmetros. Então não é tratado como um parâmetro válido.
Neste caso, altere as configurações assim:
- Redirecionar De:
(https://example.com/[^?]*)(\(?(.*))?
- Redirecionar Para:
$1?layout=desktop&$3
Vamos analisar passo a passo.
(https://example.com/[^?]*)
: Corresponde à parte até o caractere anterior de?
.[^?]*
corresponde a qualquer coisa, exceto?
.- Isso é envolvido com
()
para que você possa fazer referência a ele 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 zero ou uma vez. - O
()
externo e o()
interno podem ser referenciados com$2
e$3
mais tarde.
- Isso também corresponde a uma string vazia pelo quantificador
RegExr pode ajudá-lo a entender os detalhes.
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 mecanismo diferente da Apple que não exige escape.
Esta não é uma solução perfeita, pois redireciona example.com/hello
para example.com/hello?layout=desktop&
, que inclui um &
desnecessário no final da URL. Não é um grande problema em geral, mas se você quiser 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:
Este é apenas um exemplo. Você também pode criar várias regras para lidar com cada problema. Pode ser muito mais simples.