Mengalihkan dan menulis ulang contoh referensi - AWS Amplify Hosting

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengalihkan dan menulis ulang contoh referensi

Bagian ini mencakup kode contoh untuk berbagai skenario pengalihan umum. Anda dapat menggunakan contoh-contoh ini untuk memahami sintaks untuk membuat pengalihan dan penulisan ulang Anda sendiri.

catatan

Pencocokan domain alamat asli tidak peka huruf besar/kecil.

Pengalihan dan penulisan ulang sederhana

Anda dapat menggunakan kode contoh berikut untuk mengalihkan secara permanen suatu halaman ke alamat baru.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/original.html

/destination.html

permanent redirect (301)

JSON [{"source": "/original.html", "status": "301", "target": "/destination.html", "condition": null}]

Anda dapat menggunakan kode contoh berikut untuk mengalihkan path di suatu folder ke path yang sama di folder berbeda.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/docs/<*>

/documents/<*>

permanent redirect (301)

JSON [{"source": "/docs/<*>", "status": "301", "target": "/documents/<*>", "condition": null}]

Anda dapat menggunakan kode contoh berikut untuk mengalihkan semua lalu lintas ke index.html sebagai penulisan ulang. Dalam skenario ini, penulisan ulang menampilkan kepada pengguna bahwa pengguna telah sampai di alamat asli.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/<*>

/index.html

rewrite (200)

JSON [{"source": "/<*>", "status": "200", "target": "/index.html", "condition": null}]

Anda dapat menggunakan kode contoh berikut untuk menggunakan penulisan ulang guna mengubah subdomain yang ditampilkan kepada pengguna.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

https://mydomain.com

https://www.mydomain.com

rewrite (200)

JSON [{"source": "https://mydomain.com", "status": "200", "target": "https://www.mydomain.com", "condition": null}]

Anda dapat menggunakan kode contoh berikut untuk mengarahkan ke domain yang berbeda dengan awalan jalur.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

https://mydomain.com

https://www.mydomain.com/documents

temporary redirect (302)

JSON [{"source": "https://mydomain.com", "status": "302", "target": "https://www.mydomain.com/documents/", "condition": null}]

Anda dapat menggunakan kode contoh berikut untuk mengalihkan path di folder yang tidak dapat ditemukan ke halaman 404 kustom.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/<*>

/404.html

not found (404)

JSON [{"source": "/<*>", "status": "404", "target": "/404.html", "condition": null}]

Pengalihan untuk aplikasi web satu halaman () SPA

Sebagian besar SPA kerangka kerja mendukung HTML5 riwayat. pushState() untuk mengubah lokasi browser tanpa memulai permintaan server. Ini dapat digunakan untuk pengguna yang memulai perjalanan dari root (atau /index.html), tetapi tidak dapat digunakan untuk pengguna yang menavigasi langsung ke halaman lain.

Contoh berikut menggunakan ekspresi reguler untuk mengatur penulisan ulang 200 untuk semua file ke index.html, kecuali untuk ekstensi file yang ditentukan dalam ekspresi reguler.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>

/index.html

200

JSON [{"source": "</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json|webp)$)([^.]+$)/>", "status": "200", "target": "/index.html", "condition": null}]

Penulisan ulang proksi balik

Contoh berikut menggunakan penulisan ulang ke konten proxy dari lokasi lain sehingga tampak bagi pengguna bahwa domain tidak berubah.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/images/<*>

https://images.otherdomain.com/<*>

rewrite (200)

JSON [{"source": "/images/<*>", "status": "200", "target": "https://images.otherdomain.com/<*>", "condition": null}]

Trailing garis miring dan bersih URLs

Untuk membuat URL struktur bersih seperti about alih-alih about.html, generator situs statis seperti Hugo menghasilkan direktori untuk halaman dengan index.html (/about/index.html). Amplify secara otomatis menciptakan clean URLs dengan menambahkan garis miring saat diperlukan. Tabel berikut menampilkan berbagai skenario:

Input pengguna di peramban URLdi bilah alamat Dokumen ditampilkan

/about

/about

/about.html

/about (when about.html returns 404)

/about/

/about/index.html

/about/

/about/

/about/index.html

Placeholder

Anda dapat menggunakan kode contoh berikut untuk mengalihkan path di struktur folder tertentu ke struktur yang cocok di folder lain.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/docs/<year>/<month>/<date>/<itemid>

/documents/<year>/<month>/<date>/<itemid>

permanent redirect (301)

JSON [{"source": "/docs/<year>/<month>/<date>/<itemid>", "status": "301", "target": "/documents/<year>/<month>/<date>/<itemid>", "condition": null}]

String kueri dan parameter path

Anda dapat menggunakan kode contoh berikut untuk mengalihkan path ke folder dengan nama yang sesuai dengan nilai elemen string kueri di alamat asli:

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/docs?id=<my-blog-id-value

/documents/<my-blog-post-id-value>

permanent redirect (301)

JSON [{"source": "/docs?id=<my-blog-id-value>", "status": "301", "target": "/documents/<my-blog-id-value>", "condition": null}]

catatan

Amplify meneruskan semua parameter string kueri ke jalur tujuan untuk pengalihan 301 dan 302. Namun, jika alamat asli menyertakan string kueri yang disetel ke nilai tertentu, seperti yang ditunjukkan dalam contoh ini, Amplify tidak meneruskan parameter kueri. Dalam hal ini, pengalihan hanya berlaku untuk permintaan ke alamat tujuan dengan nilai id kueri yang ditentukan.

Anda dapat menggunakan kode contoh berikut untuk mengalihkan semua path yang tidak dapat ditemukan di tingkat tertentu struktur folder ke index.html di folder tertentu.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/documents/<folder>/<child-folder>/<grand-child-folder>

/documents/index.html

not found (404)

JSON [{"source": "/documents/<x>/<y>/<z>", "status": "404", "target": "/documents/index.html", "condition": null}]

Pengalihan berbasis wilayah

Anda dapat menggunakan kode contoh berikut untuk mengalihkan permintaan berdasarkan wilayah.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/documents

/documents/us/

temporary redirect (302)

<US>

JSON [{"source": "/documents", "status": "302", "target": "/documents/us/", "condition": "<US>"}]

Menggunakan ekspresi wildcard dalam pengalihan dan penulisan ulang

Anda dapat menggunakan ekspresi wildcard,<*>, di alamat asli untuk pengalihan atau penulisan ulang. Anda harus menempatkan ekspresi di akhir alamat asli, dan itu harus unik. Amplify mengabaikan alamat asli yang menyertakan lebih dari satu ekspresi wildcard, atau menggunakannya dalam penempatan yang berbeda.

Berikut ini adalah contoh pengalihan yang valid dengan ekspresi wildcard.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/docs/<*>

/documents/<*>

permanent redirect (301)

Dua contoh berikut menunjukkan pengalihan yang tidak valid dengan ekspresi wildcard.

Alamat asli Alamat Tujuan Jenis Pengalihan Kode Negara

/docs/<*>/content

/documents/<*>/content

permanent redirect (301)

/docs/<*>/content/<*>

/documents/<*>/content/<*>

permanent redirect (301)