AWS S3静态软管:路由规则不能与CloudFront的工作

问题描述 投票:1回答:1

我使用AWS的S3托管我VueJs SPA应用静态网页。我在S3设置路由规则,当我访问使用S3静态主机URL它,它工作完全正常。但是,我也已经配置CloudFront的与我的自定义域使用它。由于单页的应用程序需要通过的index.html被路由,我在CloudFront的设置自定义错误页,404错误重定向到的index.html。所以,现在路由规则我已经设置在S3不再起作用。

是什么让S3的路由规则与CloudFront的自定义错误页面设置SPA一起工作的最好方法?

amazon-s3 vue.js single-page-application amazon-cloudfront
1个回答
1
投票

我想我是有点晚了,但在这里不用反正,

显然,你不能这样做,如果你是使用S3 REST_API端点(example-bucket.s3.amazonaws.com)作为原点的CloudFront的分发,你必须使用由S3提供为原点的S3网站的网址(例 - bucket.s3-网站 - [区域] .amazonaws.com)。此外,对象必须是公开的,你不能锁定你的水桶由起源策略的分布。

所以,

  • 对象必须是公共的。
  • S3桶网站选项必须打开。
  • 分布起源有来自于S3网站的网址,而不是REST API端点。

编辑:

我误以为,其实,你可以用REST_API端点做到这一点,你只需要创建CloudFront的分布中自定义错误响应,可能只为404个403的错误代码,设置“自定义错误响应”选项“是的”,响应页面路径‘/index.htm’明明和HTTP响应代码为‘200’。你可以,如果你使用的是控制台找到自己的分销内部的选项和错误页面标签。

© www.soinside.com 2019 - 2024. All rights reserved.