Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengarahkan penampil ke URL baru
Fungsi permintaan penampil berikut menghasilkan respons untuk mengarahkan penampil ke URL khusus negara saat permintaan berasal dari dalam negara tertentu. Fungsi ini bergantung pada nilai CloudFront-Viewer-Country
untuk menentukan negara penampil.
Agar fungsi ini berfungsi, Anda harus mengonfigurasi CloudFront untuk menambahkan CloudFront-Viewer-Country
header ke permintaan masuk dengan menambahkannya ke header yang diizinkan dalam kebijakan cache atau kebijakan permintaan asal.
Contoh ini mengalihkan penampil ke URL khusus Jerman saat permintaan penampil berasal dari Jerman. Jika permintaan penampil tidak berasal dari Jerman, fungsi akan mengembalikan permintaan asli yang belum diubah.
Lihat contoh ini di GitHub.
- JavaScript runtime 2.0
-
async function handler(event) {
const request = event.request;
const headers = request.headers;
const host = request.headers.host.value;
const country = Symbol.for('DE'); // Choose a country code
const newurl = `https://${host}/de/index.html`; // Change the redirect URL to your choice
if (headers['cloudfront-viewer-country']) {
const countryCode = Symbol.for(headers['cloudfront-viewer-country'].value);
if (countryCode === country) {
const response = {
statusCode: 302,
statusDescription: 'Found',
headers:
{ "location": { "value": newurl } }
}
return response;
}
}
return request;
}
- JavaScript runtime 1.0
-
function handler(event) {
var request = event.request;
var headers = request.headers;
var host = request.headers.host.value;
var country = 'DE' // Choose a country code
var newurl = `https://${host}/de/index.html` // Change the redirect URL to your choice
if (headers['cloudfront-viewer-country']) {
var countryCode = headers['cloudfront-viewer-country'].value;
if (countryCode === country) {
var response = {
statusCode: 302,
statusDescription: 'Found',
headers:
{ "location": { "value": newurl } }
}
return response;
}
}
return request;
}
Untuk informasi selengkapnya tentang penulisan ulang dan pengalihan, lihat Menangani penulisan ulang dan pengalihan menggunakan fungsi tepi di studio bengkel. AWS