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 in Insight Timer ogni volta che apri accidentalmente Twitter. Creiamo una regola per questo!

Passaggio 1. Configura "Reindirizza da"

Innanzitutto, devi configurare la sezione Reindirizza da nella schermata Modifica regola nell'app. Gli obiettivi sono URL che iniziano con https://twitter.com/.

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

https://twitter.com/*

Nella modalità Carattere jolly, * 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 Carattere jolly a Espressione regolare e imposta questo come pattern:

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

L'espressione regolare è un po' complicata, ma una volta che ci si abitua, sarà uno strumento potente. Ti consigliamo di utilizzare RegExr come playground 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 utilizzato per eseguire l'escape di 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: Configura "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 gruppo di acquisizione è il modo più semplice.:

  • Reindirizza da: https://example.com/* (Carattere jolly)
  • Reindirizza a: $0
  • Elaborazione gruppo di acquisizione:
    • Gruppo: $0
    • Processo: Sostituisci occorrenze
      • Target: &?source=[^&]*
      • Sostituzione: (nessuno)
      • Pattern di 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 desideri rimuovere più parametri, aggiungi più processi.

Caso 3: Aggiungere parametri di query all'URL

Let's say there is a website called example.com that shows a mobile layout by default, but you prefer their desktop layout. Fortunately, the website supports a layout query parameter to specify which layout the website displays. Let's create a rule that adds layout=desktop automatically.

Perhaps you think you could define it as follows:

  • 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, verrai reindirizzato a example.com/hello?layout=desktop. Questa funzionalità si chiama sostituzione.

suggerimento

La sostituzione è disponibile anche per la modalità Carattere jolly poiché viene convertita internamente in espressione regolare.

Tuttavia, ci sono alcuni problemi con queste impostazioni.

Problema 1: Loop infinito

L'impostazione attuale crea un loop 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, come questo con l'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 di ?.
    • [^?]* corrisponde a qualsiasi cosa tranne ?.
    • Questo è racchiuso tra () in modo da poterlo fare riferimento con $1 in seguito.
  • (\(.*))?: Corrisponde a una stringa che inizia con ?, il che significa parametri di query.
    • Questo corrisponde anche a una stringa vuota tramite il quantificatore ? alla fine del pattern, che corrisponde zero o una volta.
    • Le () esterne e le () interne possono essere referenziate con $2 e $3 in seguito.

RegExr potrebbe aiutarti a capire i dettagli.

note

RegExr mostra un errore quando non si esegue l'escape di / con \. Sebbene sia possibile eseguirne l'escape, 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 utilizzare l'Elaborazione gruppo di acquisizione.

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 gruppo di acquisizione:
    • 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.