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)
: menargetkantwitter
danx
. (|
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.
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!
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
- Target:
- Grup:
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.
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.
- Ini juga cocok dengan string kosong oleh kuantifikasi
RegExr dapat membantu Anda memahami detailnya.
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
- Target:
- Grup:
Ini hanyalah sebuah contoh. Anda juga dapat membuat beberapa aturan untuk menangani setiap masalah. Ini bisa jauh lebih sederhana.