Redirecionar o visualizador para uma nova URL
A função de solicitação do visualizador a seguir gera uma resposta para redirecionar o visualizador para um URL específico do país quando a solicitação vem de um país específico. Esta função depende do valor do cabeçalho CloudFront-Viewer-Country
para determinar o país do visualizador.
Para que essa função funcione, você deve configurar o CloudFront para adicionar o cabeçalho CloudFront-Viewer-Country
às solicitações recebidas adicionando-o aos cabeçalhos permitidos em uma política de cache ou a uma política de solicitação de origem.
Este exemplo redireciona o visualizador para uma URL específica da Alemanha quando a solicitação do visualizador vem da Alemanha. Se a solicitação do visualizador não for proveniente da Alemanha, a função retornará a solicitação original e não modificada.
Veja este exemplo no 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 ter mais informações sobre regravações e redirecionamentos, consulte Como lidar com regravações e redirecionamentos usando funções de borda no Workshop Studio da AWS.