Jika jalur sumber daya origin berubah sedangkan URL permintaan tetap sama, konfigurasikan aturan pengalihan pada POP Edge Security Acceleration (ESA) untuk mengalihkan klien ke tujuan yang benar. Hal ini mengurangi permintaan back-to-origin dan meningkatkan kinerja akses.
Cara kerja
Proses pengalihan:
-
Klien mengirim permintaan untuk sumber daya.
-
POP ESA mencocokkan permintaan tersebut dengan aturan pengalihan. Jika cocok, sistem mengembalikan kode status pengalihan (misalnya, 301 atau 302) beserta URL tujuan dalam header respons Location.
-
Klien mengikuti header Location dan meminta resource dari URL baru tersebut.
Kode status dan skenario
|
Status code |
Makna |
Penanganan metode |
Skenario umum |
|
301 |
Moved Permanently |
Permintaan GET tetap tidak berubah. Metode lain mungkin berubah menjadi GET. |
Resource dipindahkan secara permanen ke URL baru. Mesin pencari memperbarui indeks mereka. |
|
302 |
Found |
Permintaan GET tetap tidak berubah. Metode lain mungkin berubah menjadi GET. |
Resource berada sementara di URL berbeda. Mesin pencari mempertahankan tautan asli. |
|
303 |
See Other |
Permintaan GET tetap tidak berubah. Metode lain dipaksa menjadi GET, dan badan permintaan dibuang. |
Pengalihan setelah PUT atau POST untuk mencegah pengiriman duplikat saat refresh. |
|
307 |
Temporary Redirect |
Metode dan badan permintaan tetap tidak berubah. |
Pengalihan sementara. Lebih disarankan daripada 302 jika situs Anda menggunakan metode non-GET. |
|
308 |
Permanent Redirect |
Metode dan badan permintaan tetap tidak berubah. |
Pengalihan permanen yang mempertahankan metode HTTP dan badan permintaan. Gunakan untuk migrasi API atau refaktor situs yang memerlukan konsistensi metode. |
Jika Anda perlu mengalihkan panggilan API atau permintaan non-GET (seperti POST atau PUT) sekaligus mempertahankan metode dan badan permintaan, gunakan kode status 307 (sementara) atau 308 (permanen). Kode status 301 dan 302 dapat mengubah permintaan non-GET menjadi GET, sehingga menyebabkan kehilangan data.
Hindari mengonfigurasi pengalihan pada jalur upload bertrafik tinggi (misalnya /api/upload). Untuk jalur semacam itu, pertimbangkan untuk memisahkannya ke domain khusus atau mengintersepsi permintaan melalui WAF guna mencegah lalu lintas back-to-origin abnormal akibat pengalihan.
Buat aturan pengalihan
ESA mengevaluasi aturan berdasarkan prioritas dan menerapkan kecocokan pertama.
-
Di Konsol ESA, pilih Site Management. Di kolom Website, klik situs target.
-
Di panel navigasi sebelah kiri, pilih . Klik Create Rule.
-
Di halaman Add Redirect Rule, konfigurasikan pengaturan berikut lalu klik OK:
-
Masukkan Rule Name.
-
Di bagian If requests match..., tentukan kondisi permintaan yang akan dicocokkan. Untuk informasi selengkapnya, lihat Components of a rule expression.
-
URL Redirect:

Parameter
Tipe
Deskripsi
Redirect Type
Static
Alihkan ke URL tetap. Misalnya, atur URL ke
https://test.example.com/image/1.jpg?test=123.Dynamic
Buat URL tujuan secara dinamis menggunakan expression. Misalnya, untuk mengganti hostname dalam URL permintaan sambil mempertahankan path asli, atur Expression ke
concat("https://www.example.com", http.request.uri.path). Gunakan expression valid yang dibangun dengan fungsi yang didukung. Memasukkan string biasa yang berisi variabel secara langsung akan menyebabkan kegagalan penyimpanan.Pola expression dinamis umum:
-
Pertahankan path asli (non-www ke www, HTTP ke HTTPS) — Gunakan
concat("https://target-domain.com", http.request.uri.path)untuk menggabungkan domain target dengan path permintaan asli. Gunakan pola ini ketika Anda perlu mempertahankan path selama pengalihan. -
Hapus atau ganti awalan path — Gunakan
concat("https://img.example.com", regex_replace(http.request.uri.path, "^/data", ""))untuk menghapus awalan/datadari path asli dan mengalihkan ke domain baru. Gabungkanregex_replacedenganconcatuntuk mentransformasi path.
Status Code
Kode status HTTP yang dikembalikan untuk pengalihan. Nilai yang valid: 301 (default), 302, 303, 307, dan 308. Untuk detailnya, lihat Status codes and scenarios.
Retain Query String
Apakah query string dari permintaan asli ikut dibawa ke URL tujuan. Secara default dinonaktifkan (query string asli dibuang).
Saat Retain Query String diaktifkan:
-
Jika permintaan asli memiliki query string, query string tersebut menggantikan query string pada URL pengalihan.
-
Jika permintaan asli tidak memiliki query string, query string pada URL pengalihan dipertahankan.
Untuk contoh konfigurasi, lihat Configuration examples.
-
-
Contoh konfigurasi
Contoh pengalihan statis
Skenario 1: Permintaan tidak memiliki query string, URL pengalihan memiliki query string
-
Permintaan berisi query string: Tidak
-
URL pengalihan yang dikonfigurasi berisi query string: Ya
-
Preserve query string: Diaktifkan atau dinonaktifkan
-
Contoh URL permintaan:
http://test.example.com/1.jpg -
URL pengalihan yang dikonfigurasi:
http://test.example.com/image/1.jpg?test=123 -
Location pengalihan aktual:
http://test.example.com/image/1.jpg?test=123 -
Catatan: Tidak ada query string dalam permintaan asli, sehingga query string pada URL yang dikonfigurasi digunakan terlepas dari pengaturan Preserve query string.
Skenario 2: Kedua URL memiliki query string, Preserve query string diaktifkan
-
Permintaan berisi query string: Ya
-
URL pengalihan yang dikonfigurasi berisi query string: Ya
-
Preserve query string: Diaktifkan
-
Contoh URL permintaan:
http://test.example.com/1.jpg?test=321 -
URL pengalihan yang dikonfigurasi:
http://test.example.com/image/1.jpg?test=123 -
Location pengalihan aktual:
http://test.example.com/image/1.jpg?test=321 -
Catatan: Dengan Preserve query string diaktifkan, hanya query string dari permintaan asli yang dipertahankan; parameter query pada URL pengalihan dibuang.
Skenario 3: Kedua URL memiliki query string, Preserve query string dinonaktifkan
-
Permintaan berisi query string: Ya
-
URL pengalihan yang dikonfigurasi berisi query string: Ya
-
Preserve query string: Dinonaktifkan
-
Contoh URL permintaan:
http://test.example.com/1.jpg?test=321 -
URL pengalihan yang dikonfigurasi:
http://test.example.com/image/1.jpg?test=123 -
Location pengalihan aktual:
http://test.example.com/image/1.jpg?test=123 -
Catatan: Dengan Preserve query string dinonaktifkan, hanya query string pada URL yang dikonfigurasi yang dipertahankan; parameter query dari permintaan asli dibuang.
Skenario 4: Permintaan memiliki query string, URL pengalihan tidak, Preserve query string diaktifkan
-
Permintaan berisi query string: Ya
-
URL pengalihan yang dikonfigurasi berisi query string: Tidak
-
Preserve query string: Diaktifkan
-
Contoh URL permintaan:
http://test.example.com/1.jpg?test=321 -
URL pengalihan yang dikonfigurasi:
http://test.example.com/image/1.jpg -
Location pengalihan aktual:
http://test.example.com/image/1.jpg?test=321 -
Catatan: Dengan Preserve query string diaktifkan, query string asli ditambahkan ke URL yang dikonfigurasi meskipun URL tersebut tidak memiliki parameter query.
Skenario 5: Permintaan memiliki query string, URL pengalihan tidak, Preserve query string dinonaktifkan
-
Permintaan berisi query string: Ya
-
URL pengalihan yang dikonfigurasi berisi query string: Tidak
-
Preserve query string: Dinonaktifkan
-
Contoh URL permintaan:
http://test.example.com/1.jpg?test=321 -
URL pengalihan yang dikonfigurasi:
http://test.example.com/image/1.jpg -
Location pengalihan aktual:
http://test.example.com/image/1.jpg -
Catatan: Dengan Preserve query string dinonaktifkan, query string asli dibuang dan hanya URL yang dikonfigurasi yang dikembalikan.
Contoh pengalihan dinamis
Skenario 1: Preserve query string dinonaktifkan
-
Preserve query string: Dinonaktifkan
-
Contoh URL permintaan:
https://test.example.com/image/1.jpg?test=123 -
Expression:
concat("https://www.example.com", http.request.uri.path) -
Location pengalihan aktual:
https://www.example.com/image/1.jpg -
Catatan:
-
Dengan Preserve query string dinonaktifkan, path (
/image/1.jpg) dipertahankan dan query string (?test=123) dibuang. -
Expression hanya menggabungkan hostname dan path; parameter query tidak ditangani.
-
Skenario 2: Preserve query string diaktifkan
-
Preserve query string: Diaktifkan
-
Contoh URL permintaan:
https://test.example.com/image/1.jpg?test=123 -
Expression:
concat("https://www.example.com", http.request.uri.path) -
Location pengalihan aktual:
https://www.example.com/image/1.jpg?test=123 -
Catatan:
-
Dengan Preserve query string diaktifkan, query string asli ditambahkan ke URL yang dihasilkan meskipun expression tidak menangani parameter query.
-
Expression hanya menangani penggabungan path; sistem menambahkan query string sesuai konfigurasi.
-
Skenario 3: Fungsi wildcard_replace, Preserve query string diaktifkan
-
Preserve query string: Diaktifkan
-
Contoh URL permintaan:
https://www.example.com/image-flower-20250816-1.html?src=cdn -
Expression:
wildcard_replace(http.request.full_uri, "https://www.example.com/image-*", "https://www.example.com/${1}") -
Location pengalihan aktual:
https://www.example.com/flower-20250816-1.html?src=cdn -
Catatan:
-
Dengan Preserve query string diaktifkan, sistem menambahkan query string asli (misalnya,
?src=cdn) ke URL tujuan. -
Expression hanya menangani penulisan ulang path; sistem meneruskan query string sesuai konfigurasi.
-
Skenario 4: Fungsi wildcard_replace, Preserve query string dinonaktifkan
-
Preserve query string: Dinonaktifkan
-
Contoh URL permintaan:
https://www.example.com/index.html?place=garden&date=20250816 -
Expression:
wildcard_replace(http.request.full_uri, "https://www.example.com/index.html?place=garden&date=*", "https://www.example.com/flower-${1}-1.html") -
Location pengalihan aktual:
https://www.example.com/flower-20250816-1.html -
Catatan:
-
Dengan Preserve query string dinonaktifkan, URL tujuan dibangun sepenuhnya dari expression. Parameter asli (misalnya,
place=garden) hanya digunakan untuk pencocokan;*menangkap nilai setelahdatedan menggantinya sebagai${1}. -
URL akhir tidak menyertakan parameter query asli.
-
FAQ
Bagaimana cara mengalihkan antara domain root (bare domain) dan domain www?
Pendekatannya bergantung pada konfigurasi DNS Anda:
-
Menggunakan ESA untuk pengalihan: Baik domain root maupun domain www harus terhubung ke ESA melalui catatan CNAME atau NS. Meskipun Anda telah mengonfigurasi aturan pengalihan, domain sumber harus tetap memiliki catatan CNAME agar ESA dapat mengenali trafik masuk. Setelah kedua domain terhubung ke ESA, konfigurasikan aturan pengalihan hostname yang sesuai di aturan pengalihan ESA.
-
Domain root memiliki catatan MX dan tidak dapat di-CNAME (konflik DNS): Gunakan fitur penerusan URL yang disediakan oleh penyedia DNS Anda. Perhatikan bahwa penerusan URL DNS hanya mendukung HTTP dan trafik tidak melewati ESA.
-
Penting: Jika sebelumnya Anda telah mengonfigurasi catatan penerusan URL di pengaturan DNS, Anda harus menghapus catatan tersebut dan menambahkan CNAME ESA sebelum menggunakan aturan pengalihan ESA. Jika tidak, aturan pengalihan ESA tidak akan berlaku.
Apa yang harus saya lakukan jika aturan pengalihan tidak berlaku atau mengalihkan ke URL yang salah?
Periksa hal-hal berikut secara berurutan:
-
Verifikasi kondisi pencocokan mencakup domain target secara tepat: Misalnya, jika Anda hanya mengonfigurasi aturan untuk domain www tetapi pengguna mengakses domain root, tambahkan aturan untuk domain root atau gunakan wildcard untuk mencakup keduanya.
-
Konfirmasi bahwa DNS terhubung dengan benar ke ESA: Jika Anda menggunakan pengalihan ESA, domain harus terhubung ke ESA melalui catatan CNAME atau NS. Mengandalkan konfigurasi pengalihan server origin atau penerusan URL DNS saja tidak akan berhasil.
-
Periksa apakah ada aturan dengan prioritas lebih tinggi yang menggantikan aturan pengalihan: Tinjau urutan prioritas aturan dan pastikan tidak ada aturan hulu yang mengintersepsi atau memodifikasi permintaan sebelum aturan pengalihan dievaluasi.
-
Verifikasi sintaks expression dinamis: Penggabungan URL memerlukan fungsi
concat. Memasukkan string mentah dengan variabel akan gagal. Gunakan fungsi expression valid seperticoncat,regex_replace, atauwildcard_replace.
Apa yang harus saya lakukan jika pengalihan menyebabkan loop tak berujung atau membuat website tidak dapat diakses?
Coba langkah troubleshooting berikut:
-
Periksa konfigurasi pengalihan melingkar: Verifikasi apakah server origin domain www mengarah ke domain root sementara Anda juga telah mengonfigurasi pengalihan root-ke-www, sehingga menciptakan loop. Kembalikan origin ke alamat IP aktual atau alamat origin hulu asli.
-
Pengalihan HTTP-ke-HTTPS: Gunakan fitur Force HTTPS di Konsol ESA daripada mengonfigurasi aturan pengalihan secara manual. Aturan manual dapat saling bertentangan dan menciptakan loop pengalihan.
-
Bersihkan cache pengalihan: Jika respons pengalihan lama tetap ada karena caching, lakukan purge cache di Konsol ESA lalu uji kembali perilaku pengalihan.
-
Periksa ketidaksesuaian aturan: Pastikan aturan pengalihan tidak secara tidak sengaja mencocokkan endpoint pemeriksaan kesehatan atau path internal khusus, yang dapat menyebabkan kegagalan akses.
Bagaimana cara mengonfigurasi pengalihan bersyarat berdasarkan tipe perangkat (misalnya mobile) atau karakteristik permintaan?
Anda dapat menggunakan header permintaan seperti User-Agent dalam kondisi pencocokan permintaan masuk:
-
Metode pencocokan: Gunakan Contains daripada Equals untuk pencocokan User-Agent, karena string User-Agent biasanya panjang dan bervariasi di berbagai perangkat.
-
Contoh pengalihan mobile: Atur kondisi pencocokan menjadi
User-Agent Contains Mobileatau gunakan kata kunci sepertiAndroidatauiPhone, lalu konfigurasikan aksi sebagai pengalihan 302 ke domain mobile. -
Kontrol lanjutan: Gabungkan path, parameter query, dan kondisi lain untuk kontrol pengalihan yang lebih granular. Misalnya, alihkan pengguna mobile yang mengakses
/kem.example.com, sementara pengguna desktop tetap ke domain standar.
Mengapa URL browser tidak berubah setelah saya mengonfigurasi aturan pengalihan?
Jika URL browser tidak berubah, kemungkinan Anda menggunakan penulisan ulang URL (URL rewrite) alih-alih pengalihan permintaan:
-
Pengalihan permintaan ESA mengirimkan respons 3xx ke klien, yang menyebabkan browser menavigasi ke URL baru dan memperbarui bilah alamat.
-
Penulisan ulang URL (URL rewrite) hanya memodifikasi path permintaan origin secara transparan (proxy sisi server) dan tidak mengubah URL browser. Jika Anda perlu mempertahankan URL browser tetap sama sambil memodifikasi path yang dikirim ke origin, gunakan fitur URL Rewrite alih-alih aturan pengalihan.
-
Catatan tentang wilayah akselerasi: Jika wilayah akselerasi tidak mencakup Tiongkok daratan, pengguna di Tiongkok daratan mungkin tidak mengalami akselerasi saat mengakses target pengalihan.
Rencana dukungan
|
Fitur |
Entrance |
Pro |
Premium |
Enterprise |
|
Jumlah aturan |
10 |
25 |
50 |
125 |
Dokumentasi terkait
Fitur terkait aturan memiliki variasi dalam prioritas efektif, reentrancy, dan granularitas efektif. Untuk detailnya, lihat Properties of Rule-Related Features.