Redirigir el lector a una nueva URL - Amazon CloudFront

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.

importante

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.