Lewati ke konten utama

Memulai

Halaman ini menjelaskan kasus penggunaan umum untuk membuat aturan di aplikasi Redirect Web.

(Anda juga bisa mempelajari detail pengaturan aturan di halaman Pengaturan Aturan.)

Kasus 1: Membuka situs web lain

Misalnya, Anda kecanduan Twitter, dan Anda memutuskan untuk bermeditasi di Insight Timer setiap kali Anda tidak sengaja membuka Twitter. Mari buat aturan untuk itu!

Langkah 1. Mengatur "Redirect From"

Pertama, Anda harus mengatur bagian Redirect From di layar Edit Rule di aplikasi. Targetnya adalah URL yang dimulai dengan https://twitter.com/.

Dalam kasus ini, Anda dapat menentukan pola berikut dengan mode Wildcard:

https://twitter.com/*

Dalam mode Wildcard, * berarti cocok dengan apa pun (= nol atau lebih karakter).

Namun, tunggu dulu. twitter.com diubah namanya menjadi x.com. Anda bisa saja mengganti twitter.com dengan x.com, tetapi tidak ada yang tahu kapan pemilik baru akan berubah pikiran lagi untuk mengembalikannya. Oleh karena itu, mari targetkan twitter.com dan x.com.

Untuk melakukannya, beralihlah dari Wildcard ke Regular Expression, dan tetapkan ini sebagai pola:

https://(twitter|x).com/.*
  • (twitter|x): menargetkan twitter dan x. (| disebut sebuah pipe.)
  • .*: Ini sama dengan * pada Wildcard. Lebih spesifik lagi, . berarti karakter apa pun dan * berarti apa pun sebelum simbol ini diulang berapa pun jumlahnya, sehingga cocok dengan apa pun.

Regular Expression memang sedikit rumit, tetapi setelah Anda terbiasa, ini akan menjadi alat yang ampuh. Kami merekomendasikan penggunaan RegExr sebagai tempat latihan untuk menganalisis cara kerja pola Regular Expression Anda.

catatan

Dalam Regular Expressions, . di (twitter|x).com juga diperlakukan sebagai karakter apa pun. Oleh karena itu, (twitter|x).com/.* juga cocok, misalnya, twitter1com/ atau x_com/.

Untuk menghindarinya, Anda bisa mengubahnya menjadi (twitter|x)\.com/.*. \ digunakan untuk meloloskan karakter khusus.

Namun, tidak ada URL seperti itu di lingkungan internet umum. Oleh karena itu, Anda dapat membiarkan . sebagai karakter khusus jika Anda mau. Aturan Anda adalah untuk penggunaan pribadi Anda, jadi terapkanlah sesuai keinginan Anda.

Langkah 2: Mengatur "Redirect To"

Cukup tentukan URL sebagai berikut:

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

Sekarang, Redirect Web membawa Anda ke meditasi saat Anda mengakses Twitter!

⬇️ Unduh Aturan

Kasus 2: Menghapus Parameter Kueri dari URL

Misalnya ada parameter kueri source=twitter di URL example.com, dan Anda memutuskan untuk menghapusnya untuk menganonimkan diri Anda.

Dalam kasus ini, opsi Capturing Group Processing adalah cara termudah:

  • Redirect From: https://example.com/* (Wildcard)
  • Redirect To: $0
  • Capturing Group Processing:
    • Grup: $0
    • Proses: Ganti Kemunculan
      • Target: &?source=[^&]*
      • Penggantian: (tidak ada)
      • Pola Teks: Regular Expression

⬇️ Unduh Aturan

Aturan ini bekerja sebagai berikut:

https://example.com/?source=twitter
↪ https://example.com/?

https://example.com/?hello=world&source=twitter&foo=bar
↪ https://example.com/?hello=world&foo=bar

Jika Anda ingin menghapus lebih banyak parameter, tambahkan lebih banyak proses.

Kasus 3: Menambahkan Parameter Kueri ke URL

Katakanlah ada situs web bernama example.com yang secara default menampilkan tata letak seluler, tetapi Anda lebih suka tata letak desktop mereka. Untungnya, situs web tersebut mendukung parameter kueri layout untuk menentukan tata letak mana yang ditampilkan situs web. Mari buat aturan yang menambahkan layout=desktop secara otomatis.

Mungkin Anda berpikir Anda bisa mendefinisikannya sebagai berikut:

  • Redirect From: https://example.com/.* (Regular Expression)
  • Redirect To: $0?layout=desktop

$0 mereferensikan URL target. Jika Anda mencoba mengakses example.com/hello, Anda akan dialihkan ke example.com/hello?layout=desktop. Fitur ini disebut substitusi.

tip

Substitusi juga tersedia untuk mode Wildcard karena secara internal diubah menjadi Regular Expression.

Namun, ada beberapa masalah dengan pengaturan ini.

Masalah 1: Perulangan tak terbatas

Pengaturan saat ini menciptakan perulangan pengalihan tak terbatas karena https://example.com/.* juga menargetkan https://example.com/hello?layout=desktop.

Dalam kasus ini, Anda dapat menentukan pola URL yang dikecualikan yang memungkinkan Anda mengakses tanpa pengalihan, seperti ini dengan Regular Expression:

.*[&?]layout=[^&]*.*
  • .*: Cocok dengan apa pun
  • [&?]: Cocok dengan & atau ?
  • [^&]*: Cocok dengan apa pun kecuali &

Masalah 2: Tidak dapat menangani parameter yang ada dengan benar

Jika URL target sudah memiliki parameter kueri lain seperti example.com/hello?theme=dark, tujuannya akan menjadi example.com/hello?theme=dark?layout=desktop (Ada dua ? di URL) tetapi Anda hanya dapat menggabungkan parameter dengan &. ? sebagai karakter khusus hanya diizinkan di awal parameter. Jadi, itu tidak diperlakukan sebagai parameter yang valid.

Dalam kasus ini, ubah pengaturan seperti ini:

  • Redirect From: (https://example.com/[^?]*)(\?(.*))?
  • Redirect To: $1?layout=desktop&$3

Mari kita lihat langkah demi langkah.

  • (https://example.com/[^?]*): Cocok dengan bagian hingga karakter sebelumnya dari ?.
    • [^?]* cocok dengan apa pun kecuali ?.
    • Ini dibungkus dengan () sehingga Anda dapat mereferensikannya dengan $1 nanti.
  • (\?(.*))?: Cocok dengan string yang dimulai dengan ?, yang berarti parameter kueri.
    • Ini juga cocok dengan string kosong oleh kuantifikasi ? di akhir pola, yang cocok nol atau satu kali.
    • () luar dan () dalam dapat direferensikan dengan $2 dan $3 nanti.

RegExr dapat membantu Anda memahami detailnya.

catatan

RegExr menampilkan kesalahan ketika Anda tidak meloloskan / dengan \. Meskipun Anda dapat meloloskannya, itu tidak diperlukan karena Redirect Web menggunakan mesin berbeda oleh Apple yang tidak memerlukan pelolosan.

Ini bukan solusi sempurna, karena ini mengalihkan example.com/hello ke example.com/hello?layout=desktop&, yang menyertakan & yang tidak perlu di akhir URL. Ini bukan masalah besar secara umum, tetapi jika Anda ingin menghapusnya, Anda dapat menggunakan Capturing Group Processing.

Sebagai kesimpulan, inilah hasil akhirnya:

  • Redirect From: (https://example.com/[^?]*)((\?(.*))?) (Regular Expression)
  • Redirect To: $1?layout=desktop$3
  • Pola URL yang Dikecualikan: .*[&?]layout=[^&]*.* (Regular Expression)
  • Capturing Group Processing:
    • Grup: $3
    • Proses: Ganti Kemunculan
      • Target: \?(.*)
      • Penggantian: &$1

⬇️ Unduh Aturan

Ini hanyalah sebuah contoh. Anda juga dapat membuat beberapa aturan untuk menangani setiap masalah. Ini bisa jauh lebih sederhana.