S3静态网站托管:将所有路径重定向至index.html
P粉127901279
P粉127901279 2023-10-15 23:02:52
0
1
685

我正在使用 S3 托管一个将使用 HTML5 PushStates 的 JavaScript 应用程序。问题是,如果用户为任何 URL 添加书签,它就不会解析为任何内容。我需要的是能够接受所有 url 请求并在我的 S3 存储桶中提供根 index.html,而不仅仅是执行完整重定向。然后我的 JavaScript 应用程序可以解析 URL 并提供正确的页面。

有没有办法告诉 S3 为所有 URL 请求提供 index.html,而不是进行重定向?这类似于设置 apache 通过提供单个 index.html 来处理所有传入请求,如本例所示:https://stackoverflow.com/a/10647521/1762614。我真的很想避免仅仅为了处理这些路由而运行网络服务器。从 S3 开始做所有事情都非常有吸引力。

P粉127901279
P粉127901279

全部回复(1)
P粉231112437

在 CloudFront 的帮助下,无需 URL hack 即可轻松解决该问题。

  • 创建S3存储桶,例如:react
  • 使用以下设置创建 CloudFront 分配:
    • 默认根对象:index.html
    • 源域名:S3 存储桶域,例如:react.s3.amazonaws.com
  • 转到错误页面标签,点击创建自定义错误响应
    • HTTP 错误代码:403:禁止(404:未找到,如果是 S3 静态网站)
    • 自定义错误响应:是
    • 响应页面路径:/index.html
    • HTTP 响应代码:200:正常
    • 点击创建
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板