当前位置: 首页 > 知识库问答 >
问题:

S3静态网站主机将所有路径路由到index.html

蒙弘图
2023-03-14

我正在使用S3托管一个javascript应用程序,该应用程序将使用HTML5 pushStates。问题是,如果用户为任何URL添加书签,它将无法解析为任何内容。我需要的是接收所有url请求并在S3桶中提供根index.html的能力,而不是仅仅进行完全重定向。那么我的javascript应用程序就可以解析URL并提供适当的页面。

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

共有1个答案

阎弘雅
2023-03-14

在CloudFront的帮助下,无需url攻击就可以很容易地解决这个问题。

  • 创建S3存储桶,例如:React
  • 使用以下设置创建CloudFront发行版:
    • 默认根对象:index.html
    • 来源域名:S3 bucket Domain,例如:react.S3.amazonaws.com
    • HTTP错误代码:403:禁止(404:找不到,如果是S3静态网站)
    • 自定义错误响应:是
    • 响应页路径:/index.html
    • HTTP响应代码:200:OK
    • 单击“创建”

 类似资料:
  • 当我尝试从我的容器内连接到另一个容器的端口时,我不成功并得到, 从docker主持人那里我成功了, 如果我检查iptables,我可以看到问题, 所以我添加了以下内容,一切都很好, 我错过什么了吗? 谢谢

  • 我已经部署了一个运行在OpenShift Origin上的grpc服务。这是由OpenShift服务支持的。该服务通过OpenShift路由公开。我正在尝试通过一个服务和路线将集装箱港口(50051)映射到8080港的外部世界,从而使这个吊舱可用。 服务试图公开的映像在其Dockerfile中具有: 路线如下: 服务端口:8080/TCP 目标端口:50051 在DeploymentConfig中

  • 问题内容: 我正在尝试按照以下说明进行操作:https ://wiki.jenkins- ci.org/display/JENKINS/Running+Jenkins+behind+Apache 将我的Jenkins服务器设置为出现在http:// myhost / jenkins上 。它可以工作,但是Jenkins网站认为http:// myhost /是jenkins /的根。 我相信此问题是

  • 本文向大家介绍静态路由和动态路由之间的区别,包括了静态路由和动态路由之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态路由 遵循用户定义的路由的静态路由或非自适应路由,并且直到网络管理员更改路由表后,路由表才会更改。静态路由使用简单的路由算法,并且比动态路由提供更高的安全性。 动态路由 顾名思义,动态路由或自适应路由会在网络发生任何更改或网络拓扑发生更改时更改路由表。在网络更改期间,动态路由

  • 我目前正在用spring cloud gateway替换网飞Zuul的api gateway。该设置对大多数路线使用发现客户端(eureka ),但是我们还有一个solr实例正在运行,它需要手动定义路线(因为solr不支持Eureka) 使用以下配置,使用到在本地主机上运行的solr的静态路由可以很好地工作: 但是,我想为这条路由使用负载平衡的uri,因为我们有多个solr实例。查看留档,我发现实