【发布时间】:2021-02-25 20:32:17
【问题描述】:
所以我有一个 AWS S3 存储桶来托管我构建的反应应用程序的文件。我使用 CodePipeline 构建和编译 React 应用程序并将文件存储在通过 CloudFront CDN 提供服务的 S3 存储桶中。
当我从根 https://website.com 访问 url 时,一切似乎都运行良好。当我点击该页面上的“登录”时,我会被定向到以下路线 https://website.com/auth/login,它的效果非常棒。
问题
如果我尝试直接访问页面https://website.com/auth/login,则会收到以下错误:
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>66CE67E2E5DA0B7B</RequestId>
<HostId>Spfhgnlygx05eugycEy5ew4e8oSn/ccNX21Iy/6qaAxI8glXljDjgKmUPvMzRd8+NktQsNietpg=</HostId>
</Error>
我将云端 CDN 中的默认资源设置为 /index.html,这就是根域工作的原因,但我如何让所有 URL 指向 /index.html,以便应用正确路由它?
【问题讨论】:
-
您是否point 将 S3 存储桶静态网站托管到 index.html 中的“错误文档”?
-
奇怪的是,即使我这样做了它也不起作用。现在,如果我将 Amazon URL 用于存储桶,它可以工作(绕过 CDN)website.s3-website-us-east-1.amazonaws.com/auth/login ... 但如果我通过 CDN,它会如上所述中断
-
stackoverflow.com/questions/50299204/… 试试这个,你必须在 Cloudfront 中设置自定义错误页面。 internetkatta.com/…
-
以上链接将解决您的问题。 @DigitalMC
-
别忘了点赞问答。很高兴知道它对您有帮助。
标签: amazon-web-services amazon-s3 amazon-cloudfront