Pular para o conteúdo principal

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

nota

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!

⬇️ Baixar a Regra

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

⬇️ Baixar 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 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.

dica

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.

RegExr pode ajudá-lo 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 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

⬇️ Baixar a Regra

Este é apenas um exemplo. Você também pode criar várias regras para lidar com cada problema. Pode ser muito mais simples.