All Products
Search
Document Center

CDN:Origin Path Rewrite

Last Updated:Jun 13, 2026

Alibaba Cloud CDN mendukung URL rewrite. Fitur ini hanya memengaruhi URL yang digunakan untuk permintaan origin fetch dan tidak berdampak pada routing internal CDN atau kunci cache.

Cara kerja

Aturan Origin Path Rewrite memungkinkan Anda mengubah jalur permintaan agar sesuai dengan lokasi resource sebenarnya di server origin. Hal ini memastikan bahwa POP dapat mengambil resource secara akurat atau meneruskan string kueri tertentu ke origin.

  • Jika Flag diatur ke None atau break, hanya jalur resource dalam URL yang ditulis ulang.

    无标题文档-流程图

  • Jika Flag diatur ke enhance break, baik jalur resource maupun string kueri dapat ditulis ulang.

    zh-enhance_break

Catatan penggunaan

  • Anda dapat mengonfigurasi hingga 50 aturan Origin Path Rewrite untuk satu nama domain.

  • Aturan diterapkan dari atas ke bawah. Urutan tersebut memengaruhi hasil akhir rewrite.

  • Saat Anda mengonfigurasi aturan Origin Path Rewrite, aturan tersebut dapat bertentangan dengan fitur Ignore Parameters pada tab Domain Names > Optimization. Hindari konflik konfigurasi.

  • Jika Anda mengonfigurasi aturan Origin Path Rewrite dan Origin Path Rewrite, aturan Origin Path Rewrite dapat mengubah jalur URL origin fetch. Hal ini menyebabkan jalur permintaan yang diterima oleh server origin berbeda dari jalur yang diharapkan, sehingga menghasilkan error 404. Untuk pemecahan masalah, nonaktifkan sementara aturan Origin Path Rewrite untuk melihat apakah permintaan berfungsi seperti yang diharapkan. Jika Anda perlu menggunakan kedua fitur tersebut, sesuaikan prioritas dan kondisi aturan untuk mencegah penulisan ulang jalur yang tidak disengaja.

Access URL Rewrite versus Origin Path Rewrite

Fitur

Target

Pengalaman klien

Kasus penggunaan

Access URL Rewrite

Mempengaruhi URL yang menghadap klien maupun URL yang digunakan untuk permintaan origin-pull.

  • Ketika Aturan Eksekusi adalah redirect, klien akan menggunakan URL yang dialihkan untuk menginisiasi ulang permintaan akses.

  • Ketika Aturan Eksekusi adalah break, URL yang dilihat klien sama dengan URL yang sebenarnya diakses dan tetap tidak berubah.

Umumnya digunakan untuk migrasi atau pemetaan URL dari domain lama ke domain baru, atau untuk menyediakan URL berbeda bagi klien mobile dan desktop.

Contoh: Saat klien mengakses old.example.com/hello, URL akses ditulis ulang menjadi new.example.com/hello.

Origin Path Rewrite

Hanya memengaruhi URL yang digunakan POP untuk permintaan origin-pull. URL yang menghadap klien tetap tidak berubah.

URL yang menghadap klien tidak berubah.

Umumnya digunakan untuk menyembunyikan struktur URL sebenarnya dari server origin, atau untuk memetakan URL agar POP dapat menarik konten dari direktori origin yang berbeda.

Contoh: Saat klien mengakses cdn.example.com/hello, URL origin-pull ditulis ulang menjadi origin.example.com/source/hello.

Access URL Rewrite diagram

  1. Klien mengirim permintaan ke CDN untuk URL old.example.com/hello.

  2. CDN menerima permintaan tersebut. Berdasarkan aturan Access URL Rewrite, POP mengembalikan respons 302 ke klien dan menempatkan URL baru new.example.com/hello di header HTTP Location.

  3. Setelah menerima respons 302, klien mengirim permintaan baru ke URL tersebut.

  4. POP memeriksa cache-nya. Jika konten yang ditulis ulang sudah di-cache, POP langsung mengembalikannya ke klien. Jika tidak, POP mengirim permintaan origin-pull ke server origin untuk URL yang ditulis ulang new.example.com/hello.

  5. Server origin menerima permintaan dan mengembalikan respons ke POP.

  6. POP menyimpan respons tersebut dalam cache dan mengembalikannya ke klien.

Origin Path Rewrite diagram

  1. Klien mengirim permintaan ke CDN untuk URL cdn.example.com/files/hello.txt.

  2. POP menerima permintaan dan memeriksa cache-nya. Jika konten yang diminta sudah di-cache, POP langsung mengembalikannya ke klien. Jika tidak, berdasarkan aturan Origin Path Rewrite, POP menulis ulang URL origin-pull menjadi origin.example.com/secret/files/hello.txt dan mengirim permintaan ke server origin.

  3. Server origin menerima permintaan dan mengembalikan respons ke POP.

  4. POP menyimpan respons tersebut dalam cache dan mengembalikannya ke klien.

Konfigurasi origin path rewrite

  1. Login ke CDN console.

  2. Di panel navigasi kiri, klik Domain Names.

  3. Pada halaman Domain Names, temukan nama domain target dan klik Manage di kolom Actions.

  4. Di panel navigasi kiri untuk nama domain tersebut, klik Origin Fetch.

  5. Klik tab Origin Path Rewrite.

  6. Klik Add. Konfigurasikan Path to Be Rewritten, Target Path, dan Flag.

    Parameter

    Contoh

    Deskripsi

    Path to Be Rewritten

    ^/hello$

    Jalur URL yang diawali garis miring (/) dan tidak mencakup http:// atau nama domain. Anda harus menggunakan pola PCRE (Perl Compatible Regular Expressions).

    Target Path

    /hello/test

    Jalur URL yang diawali garis miring (/) dan tidak mencakup http:// atau nama domain. PCRE didukung.

    Flag

    None

    Jika Anda mengonfigurasi beberapa aturan, setelah aturan ini cocok dan dieksekusi, aturan pencocokan berikutnya juga dieksekusi secara berurutan.

    break

    • Jika Anda mengonfigurasi beberapa aturan dan URL permintaan cocok dengan aturan ini, aturan berikutnya tidak dievaluasi.

    • Hanya jalur resource dari URL yang dimodifikasi, bukan parameter URL. Oleh karena itu, hal ini tidak memengaruhi penulisan ulang parameter URL oleh fitur Origin Path Rewrite.

    enhance break

    • Jika Anda mengonfigurasi beberapa aturan dan URL permintaan cocok dengan aturan ini, aturan berikutnya tidak dievaluasi.

    • Serupa dengan break, tetapi flag ini juga menulis ulang string kueri. Hal ini dapat bertentangan dengan fitur rewrite origin fetch parameters. Jika Anda menggunakan kedua fitur tersebut, pastikan konfigurasi Anda tidak saling bertentangan.

  7. Klik OK untuk menerapkan aturan.

    Anda juga dapat mengklik Modify atau Delete dalam daftar aturan pada tab Origin Path Rewrite untuk mengelola aturan yang sudah ada.

Contoh konfigurasi

  • Contoh 1: Flag diatur ke None

    Path to Be Rewritten

    ^/hello$

    Target Path

    /index.html

    Flag

    None

    Hasil

    Permintaan asli: http://example.com/hello

    Permintaan origin fetch setelah rewrite: http://example.com/index.html

    Permintaan kemudian dicocokkan dengan aturan berikutnya dalam daftar Origin Path Rewrite.

  • Contoh 2: Flag diatur ke break

    Path to Be Rewritten

    ^/hello.jpg$

    Target Path

    /image/hello.jpg

    Flag

    break

    Hasil

    Permintaan asli: http://example.com/hello.jpg

    Permintaan origin fetch setelah rewrite: http://example.com/image/hello.jpg

    Tidak ada aturan berikutnya dalam daftar Origin Path Rewrite yang dievaluasi.

  • Contoh 3: Flag diatur ke enhance break

    Path to Be Rewritten

    ^/hello.jpg?code=123$

    Target Path

    /image/hello.jpg?code=321

    Flag

    enhance break

    Hasil

    Permintaan asli: http://example.com/hello.jpg?code=123

    Permintaan origin fetch setelah rewrite: http://example.com/image/hello.jpg?code=321

    Tidak ada aturan berikutnya dalam daftar Origin Path Rewrite yang dievaluasi.

  • Contoh 4: Menambahkan awalan untuk jalur variabel di direktori root

    Sebagai contoh, Anda dapat menulis ulang jalur URL seperti /xxx, di mana xxx adalah nama file variabel (misalnya, /hello.jpg atau /hello.html), menjadi /image/xxx. Hal ini menyisipkan awalan /image ke dalam jalur untuk file apa pun di direktori root.

    Path to Be Rewritten

    ^(.*)$

    Catatan

    ^ mencocokkan awal string. (.*) adalah grup penangkapan, di mana . mencocokkan karakter tunggal apa pun kecuali karakter baris baru, dan * mencocokkan karakter atau grup sebelumnya nol atau lebih kali. Anda dapat menggunakan $1 di Target Path untuk mereferensikan konten yang ditangkap oleh grup ini. $ mencocokkan akhir string. Oleh karena itu, ^(.*)$ mencocokkan seluruh string dari awal hingga akhir dan menangkap semua karakter, kecuali karakter baris baru, ke dalam satu grup. Misalnya, untuk string "hello world", ^(.*)$ mencocokkan seluruh string dan menangkap "hello world" ke dalam grup pertama.

    Target Path

    /image$1

    Catatan

    /image mencocokkan string "/image". $1 mereferensikan konten dari grup penangkapan pertama, $2 mereferensikan konten dari grup penangkapan kedua, dan seterusnya. Oleh karena itu, /image$1 berarti string "/image" diikuti langsung oleh konten dari grup penangkapan pertama. Misalnya, jika konten grup penangkapan pertama adalah "abc", /image$1 mencocokkan string "/imageabc". Perhatikan bahwa $1 mereferensikan konten grup penangkapan, bukan string literal "$1". Untuk mencocokkan string literal "$1", Anda harus menggunakan karakter escape, seperti "\$1".

    Flag

    break

    Hasil

    • Permintaan asli: http://example.com/hello.jpg

      Permintaan origin fetch setelah rewrite: http://example.com/image/hello.jpg

    • Permintaan asli: http://example.com/hello.html

      Permintaan origin fetch setelah rewrite: http://example.com/image/hello.html

    Tidak ada aturan berikutnya dalam daftar Origin Path Rewrite yang dievaluasi.

  • Contoh 5: Menambahkan awalan untuk jalur di bawah direktori tertentu

    Sebagai contoh, Anda dapat menulis ulang URL yang berisi /live/xxx, di mana xxx mewakili nama file apa pun (misalnya, hello.jpg atau hello.html), menjadi /image/live/xxx. Hal ini menyisipkan awalan /image ke dalam jalur untuk file apa pun di bawah direktori /live.

    Path to Be Rewritten

    ^/live/(.*)$

    Target Path

    /image/live/$1

    Flag

    break

    Hasil

    • Permintaan asli: http://example.com/live/hello.jpg

      Permintaan origin fetch setelah rewrite: http://example.com/image/live/hello.jpg

    • Permintaan asli: http://example.com/live/hello.html

      Permintaan origin fetch setelah rewrite: http://example.com/image/live/hello.html

    Tidak ada aturan berikutnya dalam daftar Origin Path Rewrite yang dievaluasi.

  • Contoh 6: Merangkai aturan dengan flag None

    Pertimbangkan dua aturan rewrite yang diaktifkan. Aturan 1 menulis ulang ^/image_01.png$ menjadi /image_02.png dengan Flag diatur ke None. Aturan 2 menulis ulang ^(.*)$ menjadi /image$1 dengan Flag diatur ke None.

    Hasil:

    • Permintaan asli: http://example.com/image_01.png

    • Permintaan origin fetch setelah rewrite: http://example.com/image/image_02.png

      Catatan

      Permintaan pertama kali cocok dengan Aturan 1 dan ditulis ulang menjadi http://example.com/image_02.png. Karena Flag diatur ke None, jalur yang ditulis ulang kemudian dievaluasi terhadap Aturan 2, yang juga cocok. Jalur tersebut ditulis ulang untuk kedua kalinya, menghasilkan jalur akhir: http://example.com/image/image_02.png.

  • Contoh 7: Menghentikan evaluasi aturan dengan break

    Pertimbangkan dua aturan rewrite yang diaktifkan. Aturan 1 menulis ulang ^/image_01.png$ menjadi /image_02.png dengan Flag diatur ke break. Aturan 2 menulis ulang ^(.*)$ menjadi /image$1 dengan Flag diatur ke None. Ketika permintaan cocok dengan Aturan 1, pemrosesan dihentikan, dan aturan berikutnya tidak dievaluasi karena Flag diatur ke break.

    Hasil:

    • Permintaan asli: http://example.com/image_01.png

    • Permintaan origin fetch setelah rewrite: http://example.com/image_02.png

      Catatan

      Permintaan pertama kali cocok dengan Aturan 1 dan ditulis ulang menjadi http://example.com/image_02.png. Karena Flag untuk Aturan 1 diatur ke break, pemrosesan dihentikan dan tidak ada aturan berikutnya yang dievaluasi.