최종 사용자를 새 URL로 리디렉션
다음 뷰어 요청 함수는 요청이 특정 국가 내에서 오는 경우 뷰어를 국가별 URL로 리디렉션하는 응답을 생성합니다. 이 함수는 CloudFront-Viewer-Country
헤더의 값에 의존하여 최종 사용자의 국가를 결정합니다.
이 함수가 실행되려면 캐시 정책 또는 오리진 요청 정책의 허용되는 헤더 목록에 헤더를 추가하여 수신되는 요청에 CloudFront-Viewer-Country
헤더를 추가하도록 CloudFront를 구성해야 합니다.
이 예에서는 독일에 대한 최종 사용자 요청이 독일에서 오는 경우 최종 사용자를 독일에 고유한 URL로 리디렉션합니다. 최종 사용자 요청이 독일에서 오지 않는 경우 함수는 수정되지 않은 원래의 요청을 반환합니다.
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;
}
재작성 및 리디렉션에 대한 자세한 내용은 AWS 워크샵 스튜디오에서 엣지 함수를 사용하여 재작성 및 리디렉션 처리하기를 참조합니다.