Redirigir el lector a una nueva URL
La siguiente función de solicitud de lector genera una respuesta para redirigir al lector a una URL específica del país cuando la solicitud proviene de un país determinado. Esta función se basa en el valor del encabezado CloudFront-Viewer-Country
para determinar el país del lector.
Para que esta función se lleve a cabo, debe configurar CloudFront para que añada el encabezado CloudFront-Viewer-Country
a las solicitudes entrantes y añadirlo a la lista de encabezados permitidos en una política de caché o una política de solicitud de origen.
En este ejemplo se redirige al lector a una URL específica de Alemania cuando la solicitud del lector proviene de Alemania. Si la solicitud del lector no proviene de Alemania, la función devuelve la solicitud original sin modificar.
Vea este ejemplo en 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;
}
Para obtener más información sobre las reescrituras y los redireccionamientos, consulte Handling rewrites and redirects using edge functions en AWS workshop studio.