Passa al contenuto principale

Per iniziare

Questa pagina descrive i casi d'uso comuni per la creazione di regole nell'app Redirect Web.

(Puoi anche apprendere i dettagli delle impostazioni delle regole nella pagina Impostazioni delle regole.)

Caso 1: Aprire un altro sito web

Supponiamo che tu sia dipendente da Twitter e decida di meditare su Insight Timer ogni volta che apri accidentalmente Twitter. Creiamo una regola per questo!

Passaggio 1. Impostare "Reindirizza da"

Per prima cosa, dovresti impostare la sezione Reindirizza da nella schermata Modifica regola nell'app. I target sono URL che iniziano con https://twitter.com/.

In questo caso, puoi specificare il seguente pattern con la modalità Wildcard:

https://twitter.com/*

Nella modalità Wildcard, * significa che corrisponde a qualsiasi cosa (= zero o più caratteri).

Tuttavia, aspetta. twitter.com è stato rinominato in x.com. Puoi semplicemente sostituire twitter.com con x.com ma nessuno sa quando il nuovo proprietario cambierà di nuovo idea per ripristinarlo. Pertanto, miriamo sia a twitter.com che a x.com.

Per fare ciò, passa da Wildcard a Espressione Regolare e imposta questo come pattern:

https://(twitter|x).com/.*
  • (twitter|x): mira sia a twitter che a x. (| è chiamato pipe.)
  • .*: È lo stesso di * di Wildcard. Più specificamente, . significa qualsiasi carattere e * significa qualsiasi cosa prima di questo simbolo ripetuta un numero qualsiasi di volte, risultando nella corrispondenza di qualsiasi cosa.

L'Espressione Regolare è un po' complicata, ma una volta che ti ci abitui, sarà uno strumento potente. Ti consigliamo di usare RegExr come ambiente di prova per analizzare come funziona il tuo pattern di Espressione Regolare.

note

Nelle Espressioni Regolari, . in (twitter|x).com è anche trattato come qualsiasi carattere. Pertanto, (twitter|x).com/.* corrisponde anche, ad esempio, a twitter1com/ o x_com/.

Per evitarlo, puoi cambiarlo in (twitter|x)\.com/.*. \ viene usato per "escapare" un carattere speciale.

Tuttavia, non esistono tali URL nell'ambiente internet generale. Pertanto, puoi lasciare . come carattere speciale se preferisci. La tua regola è per il tuo uso personale, quindi implementala come ritieni opportuno.

Passaggio 2: Impostare "Reindirizza a"

Specifica semplicemente l'URL come segue:

https://insighttimer.com/saraauster/guided-meditations/calm

Ora, Redirect Web ti porta alla meditazione quando accedi a Twitter!

⬇️ Scarica la Regola

Caso 2: Rimuovere i parametri di query dall'URL

Supponiamo che ci sia un parametro di query source=twitter in un URL di example.com e tu abbia deciso di rimuoverlo per anonimizzarti.

In questo caso, l'opzione Elaborazione Gruppi di Cattura è il modo più semplice:

  • Reindirizza da: https://example.com/* (Wildcard)
  • Reindirizza a: $0
  • Elaborazione Gruppi di Cattura:
    • Gruppo: $0
    • Processo: Sostituisci Occorrenze
      • Target: &?source=[^&]*
      • Sostituzione: (nessuna)
      • Pattern Testo: Espressione Regolare

⬇️ Scarica la Regola

Questa regola funziona come segue:

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 vuoi rimuovere più parametri, aggiungi altri processi.

Caso 3: Aggiungere parametri di query all'URL

Supponiamo che ci sia un sito web chiamato example.com che mostra un layout mobile per impostazione predefinita, ma tu preferisci il layout desktop. Fortunatamente, il sito web supporta un parametro di query layout per specificare quale layout visualizzare. Creiamo una regola che aggiunga automaticamente layout=desktop.

Forse pensi di poterlo definire come segue:

  • Reindirizza da: https://example.com/.* (Espressione Regolare)
  • Reindirizza a: $0?layout=desktop

$0 fa riferimento all'URL di destinazione. Se provi ad accedere a example.com/hello, sarai reindirizzato a example.com/hello?layout=desktop. Questa funzionalità è chiamata sostituzione.

suggerimento

La sostituzione è disponibile anche per la modalità Wildcard poiché viene convertita internamente in Espressione Regolare.

Tuttavia, ci sono alcuni problemi con queste impostazioni.

Problema 1: Ciclo infinito

L'impostazione attuale crea un ciclo di reindirizzamento infinito poiché https://example.com/.* mira anche a https://example.com/hello?layout=desktop.

In questo caso, puoi specificare un pattern URL escluso che ti consente di accedere senza reindirizzamento, così con Espressione Regolare:

.*[&?]layout=[^&]*.*
  • .*: Corrisponde a qualsiasi cosa
  • [&?]: Corrisponde a & o ?
  • [^&]*: Corrisponde a qualsiasi cosa tranne &

Problema 2: Impossibile gestire correttamente i parametri esistenti

Se l'URL di destinazione ha già altri parametri di query come example.com/hello?theme=dark, la destinazione sarà example.com/hello?theme=dark?layout=desktop (ci sono due ? nell'URL) ma puoi unire i parametri solo con &. ? come carattere speciale è consentito solo all'inizio dei parametri. Quindi non è trattato come un parametro valido.

In questo caso, modifica le impostazioni in questo modo:

  • Reindirizza da: (https://example.com/[^?]*)(\?(.*))?
  • Reindirizza a: $1?layout=desktop&$3

Diamo un'occhiata passo dopo passo.

  • (https://example.com/[^?]*): Corrisponde alla parte fino al carattere precedente a ?.
    • [^?]* corrisponde a qualsiasi cosa tranne ?.
    • Questo è racchiuso tra () in modo da poterlo riferire con $1 in seguito.
  • (\?(.*))?: Corrisponde a una stringa che inizia con ?, il che significa parametri di query.
    • Questo corrisponde anche a una stringa vuota dal quantificatore ? alla fine del pattern, che corrisponde a zero o una volta.
    • Le () esterne e le () interne possono essere riferite con $2 e $3 in seguito.

RegExr potrebbe aiutarti a capire i dettagli.

note

RegExr mostra un errore quando non "escapa" / con \. Sebbene tu possa "escaparlo", non è richiesto poiché Redirect Web utilizza un motore diverso di Apple che non richiede l'"escape".

Questa non è una soluzione perfetta, poiché reindirizza example.com/hello a example.com/hello?layout=desktop&, che include un & non necessario alla fine dell'URL. Non è un grosso problema in generale, ma se desideri rimuoverlo, puoi usare l' Elaborazione Gruppi di Cattura.

In conclusione, questo è l'output finale:

  • Reindirizza da: (https://example.com/[^?]*)((\?(.*))?) (Espressione Regolare)
  • Reindirizza a: $1?layout=desktop$3
  • Pattern URL escluso: .*[&?]layout=[^&]*.* (Espressione Regolare)
  • Elaborazione Gruppi di Cattura:
    • Gruppo: $3
    • Processo: Sostituisci Occorrenze
      • Target: \?(.*)
      • Sostituzione: &$1

⬇️ Scarica la Regola

Questo è solo un esempio. Puoi anche creare più regole per gestire ogni problema. Può essere molto più semplice.