cloudfront重定向到原点而不是别名

Uri*_*lar 9 ssl redirect ruby-on-rails heroku amazon-cloudfront

我正在使用Cloudfront发行版作为我的Heroku服务器的代理.为什么?出于这些目的.

无论如何,我的应用程序有一个强制ssl规则.当我转到我的cloudfront网址时,原点是我的heroku app url,我得到301重定向到原点,而不是作为别名.

我做过的一些事情:

起初我有一个错误说"request could not be satisfied",所以我将原始协议策略更改为仅HTTP.

然后,我有一个重定向循环,所以在研究后我发现它是由主机头传入引起的,所以我删除了转发头.

现在我得到301重定向.我怎么能阻止它?我应该看什么配置?

Appreaciate任何想法.很高兴提供任何其他信息.

Nat*_*ate 11

我昨天刚开始使用CloudFront并且遇到了完全相同的问题.我找到了下面的答案,并意识到我的非www到www重定向导致了问题:

我从domain.com重定向到www.domain.com,CloudFront正在缓存并返回该重定向.您可能会看到与http/https重定向相同的事情.

如果您正在进行HTTP - > HTTPS重定向,则有两种选择:您可以将资产作为HTTP提供给CloudFront,也可以让CloudFront将它们作为HTTPS请求.要执行后者,您需要将CloudFront原点配置为"匹配查看器".这意味着如果观众使用HTTPS,CloudFront也会.如果用户使用HTTP,CloudFront将在HTTP中请求,返回从服务器收到的HTTPS重定向,然后客户端将以HTTPS形式重新发出请求.

在我们的案例中,资产本身不需要在飞行中受到保护.它们从CloudFront作为HTTPS提供服务非常重要,因此用户的浏览器可以看到所有HTTPS内容.因此,在我们的案例中,没有必要将资产作为HTTPS提供给CloudFront.无论它如何从我们的服务器获取内容,CloudFront都会在响应时匹配查看器的协议.

/sf/answers/1580002721/

您可以尝试的一件事是暂时从.htaccess文件中删除任何重写规则,然后尝试通过CloudFront加载新文件.每次尝试一个新文件,因为CloudFront会缓存它获得的响应(无论是否是文件).

  • 不知道它有什么帮助。 (3认同)