Primeiros Passos
Esta página descreve casos de uso comuns para criar regras na aplicação Redirect Web.
(Também pode aprender os detalhes das configurações de regras na página Configurações de Regras.)
Caso 1: Abrir outro website
Suponha que está viciado no Twitter e decide meditar no Insight Timer sempre que abre acidentalmente o Twitter. Vamos criar uma regra para isso!
Passo 1. Configurar "Redirecionar De"
Primeiro, deve configurar a secção Redirecionar De no ecrã Editar Regra na aplicação. Os alvos são URLs que começam com https://twitter.com/
.
Neste caso, pode especificar o seguinte padrão com o modo Curinga:
https://twitter.com/*
No modo Curinga, *
significa que corresponde a qualquer coisa (= zero ou mais caracteres).
No entanto, espere. twitter.com
foi renomeado para x.com
. Pode simplesmente substituir twitter.com
por x.com
, mas ninguém sabe quando o novo proprietário mudará de ideias novamente para reverter. Portanto, vamos visar 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)
: visa 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.
A Expressão Regular é um pouco complicada, mas depois de se habituar a ela, será uma ferramenta poderosa. Recomendamos usar RegExr como um playground para analisar como o 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, 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, pode deixar .
como um caractere especial se preferir. A sua regra é para seu próprio uso, então implemente-a como achar melhor.
Passo 2: Configurar "Redirecionar Para"
Basta especificar o URL da seguinte forma:
https://insighttimer.com/saraauster/guided-meditations/calm
Agora, o Redirect Web leva-o à meditação quando acede ao Twitter!
Caso 2: Remover Parâmetros de Consulta do URL
Suponha que existe um parâmetro de consulta source=twitter
num URL de example.com
, e decidiu removê-lo para se anonimizar.
Neste caso, a opção Processamento de Grupo de Captura é a forma 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 quiser remover mais parâmetros, adicione mais processos.
Caso 3: Adicionar Parâmetros de Consulta ao URL
Digamos que existe um website chamado example.com
que mostra um layout móvel por padrão, mas prefere o layout de desktop. Felizmente, o website suporta um parâmetro de consulta layout
para especificar qual layout o website exibe. Vamos criar uma regra que adiciona layout=desktop
automaticamente.
Talvez pense que poderia defini-lo da seguinte forma:
- Redirecionar De:
https://example.com/.*
(Expressão Regular) - Redirecionar Para:
$0?layout=desktop
$0
refere-se ao URL de destino. Se tentar aceder a example.com/hello
, é redirecionado para example.com/hello?layout=desktop
. Esta funcionalidade é chamada de substituição.
A substituição também está disponível para o modo Curinga, uma vez que é internamente convertida para Expressão Regular.
No entanto, existem alguns problemas com estas configurações.
Problema 1: Loop infinito
A configuração atual cria um loop de redirecionamento infinito, uma vez que https://example.com/.*
também visa https://example.com/hello?layout=desktop
.
Neste caso, pode especificar um padrão de URL excluído que lhe permite aceder sem redirecionamento, assim 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 o 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 ?
no URL), mas só pode juntar os parâmetros com &
. ?
como um caractere especial só é permitido no início dos parâmetros. Portanto, 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?
.- Isto é envolvido com
()
para que possa referenciá-lo com$1
mais tarde.
(\(.*\))?
: Corresponde a uma string que começa com?
, o que significa parâmetros de consulta.- Isto também corresponde a 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.
- Isto também corresponde a string vazia pelo quantificador
RegExr pode ajudá-lo a entender os detalhes.
O RegExr mostra um erro quando não escapa /
com \
. Embora possa escapá-lo, não é obrigatório, uma vez que o Redirect Web usa um motor 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 do URL. Não é um grande problema em geral, mas se desejar 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. Também pode criar várias regras para lidar com cada problema. Pode ser muito mais simples.