Primeiros Passos
Esta página descreve casos de uso comuns para a criação de regras na aplicação Redirect Web.
(Pode também 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 o Twitter acidentalmente. Vamos criar uma regra para isso!
Passo 1. Configurar "Redirecionar De"
Primeiro, deve configurar a secção Redirecionar De no ecrã Editar Regra da 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 Máscara:
https://twitter.com/*
No modo Máscara, *
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 direcionar tanto twitter.com
quanto x.com
.
Para fazer isso, mude de Máscara para Expressão Regular, e defina este como o padrão:
https://(twitter|x).com/.*
(twitter|x)
: direciona tantotwitter
quantox
. (|
é chamado de barra vertical.).*
: É o mesmo que*
da Máscara. 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 assim que se habituar, será uma ferramenta poderosa. Recomendamos usar RegExr como um campo de testes 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, a 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 uso próprio, por isso 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 há 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 maneira mais fácil:
- Redirecionar De:
https://example.com/*
(Máscara) - Redirecionar Para:
$0
- Processamento de Grupo de Captura:
- Grupo:
$0
- Processo: Substituir Ocorrências
- Alvo:
&?source=[^&]*
- Substituição: (nenhuma)
- 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
Vamos supor que há um website chamado example.com
que mostra um layout móvel por defeito, mas prefere o layout de ambiente de trabalho. 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
referencia o URL de destino. Se tentar aceder a example.com/hello
, será redirecionado para example.com/hello?layout=desktop
. Esta funcionalidade é chamada de substituição.
A substituição também está disponível para o modo Máscara, uma vez que é internamente convertido para Expressão Regular.
No entanto, há alguns problemas com estas configurações.
Problema 1: Ciclo infinito
A configuração atual cria um ciclo de redirecionamento infinito, uma vez que https://example.com/.*
também direciona para https://example.com/hello?layout=desktop
.
Neste caso, 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 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 unir os parâmetros com &
. ?
como um caractere especial só é permitido no início dos parâmetros. Por isso não é tratado como um parâmetro válido.
Neste caso, altere as configurações da seguinte forma:
- 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 a?
.[^?]*
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 uma string vazia pelo quantificador
?
no final do padrão, que corresponde a zero ou uma vez. - O
()
exterior e o()
interior podem ser referenciados com$2
e$3
mais tarde.
- Isto também corresponde a uma 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 é necessário, uma vez que 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&
, 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. Pode também criar várias regras para lidar com cada problema. Pode ser muito mais simples.