Redirect 在AWS Amplify前面放置CloudFront时,如何避免301重定向循环? 背景

Redirect 在AWS Amplify前面放置CloudFront时,如何避免301重定向循环? 背景,redirect,single-page-application,amazon-cloudfront,aws-amplify,http-redirect,Redirect,Single Page Application,Amazon Cloudfront,Aws Amplify,Http Redirect,我们希望在AWS Amplify SPA前面有一个CloudFront作为路由器。原因是我们需要在所有SPA中共享一个公共域,以便共享本地存储。因此,每个SPA将托管在CloudFront上的一个子路径上。我们使用Amplify的原因是因为我们使用的是客户端路由,所以我们需要将请求从重定向到index.html 基本思想是我们将拥有一个CloudFront,它代理/缓存来自https://cloudFrontDomain.com/spaOne/*至https://spaOne-amplify.c

我们希望在AWS Amplify SPA前面有一个CloudFront作为路由器。原因是我们需要在所有SPA中共享一个公共域,以便共享本地存储。因此,每个SPA将托管在CloudFront上的一个子路径上。我们使用Amplify的原因是因为我们使用的是客户端路由,所以我们需要将请求从重定向到index.html

基本思想是我们将拥有一个CloudFront,它代理/缓存来自
https://cloudFrontDomain.com/spaOne/*
https://spaOne-amplify.com/spaOne/*

问题 然而,出于某种原因,当Amplify托管的SPA通过头接收到一个看起来像来自CloudFront的
头时,它会进入重定向循环

  • GET
  • 301
    -/someRandomId/
  • GET
  • 301
    -/someRandomId/
  • 。。。等等等等
我在任何地方都找不到任何关于这种行为的细节,我也不知道如何避免它。如果通过
标题删除或更改
,行为将停止。
以下情况会导致重定向循环:

  • Via:
    1.1 7331c3ff7c4cd86239addbfddaa5cee4.cloudfront.net(cloudfront)
  • Via:
    1.1 abc.cloudfront.net(cloudfront)
但这些并不是:

  • Via:
    1.1 7331C3FF7C4CD86239ADDBDDAA5CEE4.cloudfront.net
  • Via:
    1.1 spaOne-amplify.com(CloudFront)

所以这里的想法是使用目标组来加载分发(或重定向网络规则)。默认情况下,我不确定是否有办法在CloudFront中实现这一点

  • 然而,通过创建负载平衡器(在您的情况下是应用程序),然后在CloudFront实例中指定origin作为负载平衡器,可以实现这一点

  • 一旦所有内容都进入负载平衡器,您就可以使用重定向行为创建一个或另一个源


  • 好吧,这太糟糕了,我一直希望有一个解决方案,不需要每小时收费的基础设施。我想我不会用放大(