我正在使用Cloudfront发行版作为我的Heroku服务器的代理。为什么?用于these目的。
无论如何,我的应用程序上有一个强制ssl规则。当我转到我的cloudfront网址时,原点是我的heroku app url,我正在获得301重定向到原点,而不是作为别名。
我做过的一些事情:
起初我有一个错误"request could not be satisfied"
,所以我将原始协议策略更改为仅HTTP。
然后,我有一个重定向循环,所以在研究后我发现它是由主机头传入引起的,所以我删除了转发头。
现在我得到301重定向。我怎么能阻止它?我应该看什么配置?
宣传任何想法。很高兴提供任何其他信息。
答案 0 :(得分:10)
我昨天刚开始使用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获取内容 将在响应时匹配查看器的协议。
https://stackoverflow.com/a/22571467/1101095
您可以尝试的一件事是暂时从.htaccess文件中删除任何重写规则,然后尝试通过CloudFront加载新文件。每次尝试一个新文件,因为CloudFront会缓存它获得的响应(无论它是否是文件)。