在 Cloudfront 自定义错误响应中,有没有办法强制更新浏览器导航栏的重定向?

Posted

技术标签:

【中文标题】在 Cloudfront 自定义错误响应中,有没有办法强制更新浏览器导航栏的重定向?【英文标题】:In Cloudfront custom error responses, is there a way to force a redirect that updates the browser navigation bar? 【发布时间】:2020-12-30 22:02:18 【问题描述】:

我想将所有 403 错误重定向到 /index.html。如果我在 Cloudfront 中添加自定义错误响应,如果我转到mywebsite/bad_page,它将提供index.html,但在浏览器导航栏中保留mywebsite/bad_page。我希望它完全重定向到mywebsite,从浏览器导航栏中删除错误的 URL。

【问题讨论】:

【参考方案1】:

转到 CloudFront 设置的错误选项卡,按照以下步骤操作:

    选择错误代码如403 给出路径/index.html 设置响应码为200

见下文:

如果您想将bad_pages 重定向到/index.html,则在属性 -> 静态网络托管 -> 重定向规则中创建 S3 路由规则

<RoutingRules>
  <RoutingRule>
    <Condition>
      <KeyPrefixEquals>bad_pages</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>index.html</ReplaceKeyWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

【讨论】:

这就是我目前的设置方式,但如前所述,当我转到无法识别的路径时,导航栏不会更新。 您想显示bad_page 吗?还是想路由到不同的页面? 我想将它们路由到 index.html,并从浏览器导航栏中删除 bad_page 路径 如果我这样做,它会转到存储桶网页,而不是我在云端的域后面的网页。

以上是关于在 Cloudfront 自定义错误响应中,有没有办法强制更新浏览器导航栏的重定向?的主要内容,如果未能解决你的问题,请参考以下文章

无法将SSL证书与Amazon Cloudfront相关联

Cloudfront - 重叠备用域名

使用 Cloudfront 从自定义域 url 中删除 stage

如何从自定义源的请求中获取 Cloudfront 子域?

CLOUDFRONT EC2 源错误 CloudFront 试图建立与源的连接 [重复]

使用 SNI 通过 HTTPS 提供服务时出现 CloudFront 错误