当我向AWS、S3和CloudFront部署了时,当我尝试直接访问React路由时,它会给出下面的403个错误代码错误。当基本URL(www.sample-app.com)和路由URL(Www.sam-app.com/cart)通过应用程序时,我可以访问它。
但是,如果我直接尝试使用React route(Www.sam-app.com/cart),它会产生一个403个访问拒绝错误,如下所示。主要的痛苦之处在于,当我试图刷新一个反应路由URL.时,它会产生这个错误。
<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>REQUEST_ID</RequestId>
<HostId>HOST_ID</HostId>
</Error>
注意:我使用AWS负载均衡器和Lambda函数作为后端。我已经设置了AWS ALB和Cloudfront来验证AWS认知用户的身份。
感谢你在这方面的帮助。
发布于 2021-05-27 22:39:14
因为cloudfront只能访问存储桶中确实存在的文件,而且如果一个不存在的对象被请求,它将返回403,因此您需要添加一个自定义错误页面,该页面返回带有200个状态代码的index.html文件。然后,由于返回了index.html,React路由器可以完成它的工作。
更多信息在这里:
发布于 2022-04-21 00:36:32
使用CloudFormation创建Cloudfront分发版时,请在DistributionConfig部分使用以下内容
"DistributionConfig": {
//Other configs
"CustomErrorResponses":[
{
"ErrorCachingMinTTL" : 1,
"ErrorCode" : 403,
"ResponseCode" : 200,
"ResponsePagePath" : "/index.html"
}
]
}
发布于 2022-11-04 18:08:53
最简单的选项是在CloudFront实例"Error pages“选项卡中创建一个简单的自定义错误。请看附图。这是一个30秒的修复和工作,一旦它自动部署。
https://stackoverflow.com/questions/65948649
复制相似问题