移动到 cloudfront + SSL 后,应用程序中的路由器链接断开

Ale*_*lex 3 amazon-s3 amazon-cloudfront reactjs react-router-v4

我有一个反应应用程序,使用托管在 S3 存储桶中的反应路由器,使用 Route53 作为 DNS 提供程序。该应用程序在 Route53 配置指向 S3 存储桶的情况下运行良好。

由于我想使用 SSL,我创建了一个指向存储桶的 Cloudfront 分配,带有 SSL 证书,并将 DNS 指向它。由于这样做,所有链接都无效(example.com 有效,但 example.com/foo 无效)。它只是返回一个 NoSuchKey 错误。我知道这是不正确的,因为钥匙肯定在那里,而且它以前是有效的。

Der*_*ard 5

问题

  1. 大多数Web 服务器一样,如果存储桶不包含 URL 指定的对象,CloudFront/S3 将抛出 404。
  2. 如果未知/身份不明的对象不可公开访问或没有正确的权限,它们将自动抛出 403

解决方案

当您的 Amazon S3 或自定义源向 CloudFront 返回 HTTP 4xx 或 5xx 状态代码时,您可以让 CloudFront 向查看器返回一个对象(例如,HTML 文件)。您还可以指定来自您的源或自定义错误页面的错误响应在 CloudFront 边缘缓存中缓存的时间。

更多资源