🕰️ 작성일 : 2025.06.08
Q : ALB을 통해서 요청이 들어왔을때, 도메인을 아래와 같이 리다이렉션 할 수 있을까요?
a.com/auto/bbb/index.html
a.com/bbb/index.html
: 중간의 ‘auto’ 경로를 삭제하고 리다이렉트A : Application Load Balancer의 규칙 추가 시 도메인 조건문을 부여하고, 조건에 해당되는 도메인들은 지정한 도메인으로 리다이렉션 할 수 있습니다.
그러나 ALB의 리다이렉션은 기존의 Path를 변경하여 URL을 리다이렉션은 제공하지 않습니다. 즉 위와 같이 기존의 Path(/auto/bbb/index.html
)에 대한 변경은 불가능합니다. 리다이렉트 되는 경로를 기존의 Path에서 첫번째 세그먼트를 삭제하는 ${path:1}
경로로 지정하게 되면 아래와 같이 ALB에서는 에러가 반환됩니다.
이 경우 Amazon Cloudfront를 ALB와 연동하고, CloudFront Functions 기능을 통해서 Request를 가로채어 Path 값을 동적으로 변경하는 방식으로 구성 할 수 있습니다.
/auto
인 경우 URL을 변경하여 HTTP 리다이렉션(301) 응답을 반환합니다.function handler(event) {
var request = event.request;
var uri = request.uri;
// /auto로 시작하는 경로를 리다이렉션
if (uri === "/auto" || uri.startsWith("/auto/")) {
var newUri = uri === "/auto" ? "/" : uri.substring(5);
var response = {
statusCode: 301,
statusDescription: "Moved Permanently",
headers: {
"location": {
value: newUri
}
}
};
return response;
}
// 다른 경로는 그대로 처리
return request;
}