一位开发人员将静态网站托管在 S3 存储桶中,并通过 CloudFront 提供服务,使用源访问控制 (OAC),因此该存储桶不是公共的。用户可以访问显式文件 URL(例如,/products/index.html),但在请求目录 URL(例如,/products/)时会收到错误。在不将 S3 存储桶公开的情况下,如何提供目录请求,使其返回默认的索引文件?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 创建一个 CloudFront viewer-request 函数,用于检测目录式请求并将 index.html 附加到请求 URL,并将其附加到分配行为。.
为什么这是答案
正确答案是创建一个 CloudFront viewer-request 函数,用于检测目录式请求并将 index.html 附加到请求 URL。当用户请求目录(例如 /products/)时,CloudFront viewer-request 函数可以在请求到达源站之前将其重写为 /products/index.html。这使得 S3 能够正确返回默认的索引文件,而无需将 S3 存储桶公开。 将 CloudFront 分配的默认根对象更改为 index.html 仅适用于根目录请求(例如 /),不适用于子目录请求(例如 /products/)。 在存储桶上启用 S3 静态网站托管并更改 CloudFront 源会使 S3 存储桶公开,这与题目要求“不将 S3 存储桶公开”相悖。 为 404 Not Found 配置 CloudFront 自定义错误响应,该响应返回 /index.html 并在 HTTP 200 OK 响应代码,这是一种错误处理机制,而不是主动解决目录请求的方法,并且可能会导致不必要的重定向和潜在的 SEO 问题。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡