将云端错误响应更改为默认根对象

Change cloudfront error response to default root object

我正在创建一个部署到 S3/cloudfront 的单页应用程序。我有几个 gulp 任务在读取部署时执行。这些步骤之一会修改我所有的文件,因此 index.html 变成类似 index-5737284.html 的东西。文件重命名后 gulp 调用云端并更改默认根对象以匹配新名称。这实际上以 quick/cheap 方式使缓存无效。

当我尝试刷新我的应用程序页面时出现了问题。例如,myapp.com/some-page。因为它是一个单页应用程序,所以它不存在。我想将所有这些请求重定向到新的默认根对象。无论如何要在云端配置它?我可以手动输入 404 错误的重定向,但由于我不知道我的索引上的随机哈希是什么,所以我需要一些更自动化的东西。

I'd like to redirect all those requests to the new default root object.

由于可以在 / 访问默认根对象,您可以将所有请求重定向到 /。您不必将它们重定向到任何默认根对象的实际路径。

CloudFront 在将请求发送到源之前通过在内部重写 URI 来处理对默认根对象的请求。