Saltar para o conteúdo principal

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 tanto twitter quanto x. (| é 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.

note

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!

⬇️ Descarregar a Regra

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

⬇️ Descarregar a Regra

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.

tip

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.

RegExr pode ajudá-lo a entender os detalhes.

note

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

⬇️ Descarregar a Regra

Isto é meramente um exemplo. Pode também criar várias regras para lidar com cada problema. Pode ser muito mais simples.