All Products
Search
Document Center

Edge Security Acceleration:Pengalihan permintaan

Last Updated:Jun 25, 2026

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:

  1. Klien mengirim permintaan untuk sumber daya.

  2. 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.

  3. 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.

Penting

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.

  1. Di Konsol ESA, pilih Site Management. Di kolom Website, klik situs target.

  2. Di panel navigasi sebelah kiri, pilih Rules > Redirect Rules. Klik Create Rule.

  3. 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:

      Single Redirect configuration

      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 /data dari path asli dan mengalihkan ke domain baru. Gabungkan regex_replace dengan concat untuk 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 setelah date dan 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:

  1. 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.

  2. 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.

  3. 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:

  1. 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.

  2. 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.

  3. 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.

  4. Verifikasi sintaks expression dinamis: Penggabungan URL memerlukan fungsi concat. Memasukkan string mentah dengan variabel akan gagal. Gunakan fungsi expression valid seperti concat, regex_replace, atau wildcard_replace.

Apa yang harus saya lakukan jika pengalihan menyebabkan loop tak berujung atau membuat website tidak dapat diakses?

Coba langkah troubleshooting berikut:

  1. 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.

  2. 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.

  3. Bersihkan cache pengalihan: Jika respons pengalihan lama tetap ada karena caching, lakukan purge cache di Konsol ESA lalu uji kembali perilaku pengalihan.

  4. 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:

  1. Metode pencocokan: Gunakan Contains daripada Equals untuk pencocokan User-Agent, karena string User-Agent biasanya panjang dan bervariasi di berbagai perangkat.

  2. Contoh pengalihan mobile: Atur kondisi pencocokan menjadi User-Agent Contains Mobile atau gunakan kata kunci seperti Android atau iPhone, lalu konfigurasikan aksi sebagai pengalihan 302 ke domain mobile.

  3. Kontrol lanjutan: Gabungkan path, parameter query, dan kondisi lain untuk kontrol pengalihan yang lebih granular. Misalnya, alihkan pengguna mobile yang mengakses / ke m.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:

  1. Pengalihan permintaan ESA mengirimkan respons 3xx ke klien, yang menyebabkan browser menavigasi ke URL baru dan memperbarui bilah alamat.

  2. 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.

  3. 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.