我有以下Terraform规则,它尝试将https://engineering.example.com/blog/<path>格式的URL重定向到https://www.example.com/engineering/<path>
resource "aws_lb_listener_rule" "redirect_engineering_blog_urls_to_website" {
listener_arn = module.web.alb_listener_arn
action {
type = "redirect"
redirect {
host = "www.example.com"
path = "/engineering/#{path}"
port = "443"
protocol = "HTTPS"
status_code = "HTTP_301"
}
}
condition {
host_header {
values = ["engineering.example.com"]
}
}
condition {
path_pattern {
values = ["/blog/*"]
}
}
}然而,它并不起作用。当我导航到https://engineering.example.com/blog/mypost时,它会重定向到https://www.example.com/engineering/blog/mypost (注意/engineering/blog/,它应该只是/engineering/)。
有没有办法告诉terraform仅用${path}替换*通配符捕获的["/blog/*"]
发布于 2020-11-18 00:32:04
据我所知,要做基于匹配的完整路径重写(就像上面的例子一样),你需要使用合适的引擎或其他技术,例如nginx,haproxy,或者,如果你在AWS中,在API Gateway后面的一个小lambda来实现这一点-不幸的是,ALBs不支持基于模式的路径提取。
https://stackoverflow.com/questions/64878992
复制相似问题