AWS CloudFront误解了路由规则,并将资源重定向回S3存储桶对象URL

加勒特·威尔逊

我有一个AWS S3存储桶;让我们称之为example.com我已将存储桶配置为用于静态网站托管;例如,存储桶静态网站网址可能是http://example.com.s3-website-us-west-1.amazonaws.com我还有一个带有AWS托管证书的CloudFront发行版,因此,https://example.com/例如,当我访问,它会在S3存储桶之外提供内容http://example.com.s3-website-us-west-1.amazonaws.com/一切都像梦一样。

在我的网站上,我有一个文件https://example.com/foo.html已重命名为https://example.com/bar.html网络上的其他一些页面可能链接到foo.html,因此在我的S3存储桶配置中,我为foo.html对象设置了重定向,如下所示:

<RoutingRules>
  <RoutingRule>
    <Condition>
      <KeyPrefixEquals>foo.html</KeyPrefixEquals>
    </Condition>
    <Redirect>
      <ReplaceKeyWith>bar.html</ReplaceKeyWith>
    </Redirect>
  </RoutingRule>
</RoutingRules>

当我尝试浏览到时http://example.com.s3-website-us-west-1.amazonaws.com/foo.html,它会发送HTTP301永久重定向到bar.html,因此http://example.com.s3-website-us-west-1.amazonaws.com/bar.html,正如我期望的那样,我最终到达

因此,现在如上所述,我将S3存储桶部署到CloudFront分发中。在CloudFront状态显示“已部署”后,我浏览至https://example.com/foo.html,并期望将其重定向至https://example.com/bar.html不好了; 我被引导到http://example.com.s3-website-us-west-1.amazonaws.com/foo.htmlinsetad!

为什么CloudFront发行版将我重定向回原义的S3存储桶URL?为什么对象没有重定向到正确存储到CloudFront的同一存储桶中的相对对象?

请注意,我知道AWS Cloudfront重定向到S3存储桶的另一个问题,但这似乎不是这个问题的重复问题,因为另一个问题是指整个CloudFront站点临时重定向到整个S3存储桶,而不是单个S3对象重定向失败以将其部署到CloudFront。

詹姆斯·迪恩

首先,CloudFront不会遵循从原点进行的重定向,而是从S3接收响应并将其按原样提供给客户端。S3正在发送此响应,因为在S3重定向规则中,您还需要指定HOST值。

例如:

<HostName>...</HostName>

您可以将主机名定义为名称example.com或https://example.com,在响应中返回的Location标头中使用的主机名。

https://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html

注意:请记住在进行更改和再次测试之前清除缓存,cloudfront还会缓存3xx响应。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

AWS CLI从AWS CLI获取专用存储桶的S3 URL下载

来自分类Dev

使用PowerShell DSC获取AWS S3存储桶对象

来自分类Dev

使用AWS S3 REST API检索存储桶的对象而无需知道存储桶的区域

来自分类Dev

如何编辑AWS S3存储桶对象?

来自分类Dev

AWS S3存储桶日志与AWS CloudTrail

来自分类Dev

AWS S3无法通过PHP SDK删除存储桶中的对象

来自分类Dev

对象存在于Node.JS的AWS S3存储桶中

来自分类Dev

如何在AWS S3存储桶和CloudFront中将非www重定向到www

来自分类Dev

当源为S3存储桶时,AWS CloudFront返回http 307

来自分类Dev

AWS CloudFront重定向到S3存储桶

来自分类Dev

AWS Route 53 / S3存储桶将所有重定向到一个URL

来自分类Dev

如何使用AWS C ++ SDK解析区域,存储桶和对象键的S3 URI?

来自分类Dev

AWS s3重定向到另一个s3存储桶

来自分类Dev

AWS CloudFront和S3,通过单个重定向处理WWW和HTTPS

来自分类Dev

在EC2上运行存储在AWS S3存储桶中的Python脚本并将结果文件保存回S3存储桶

来自分类Dev

每个子域的AWS S3静态网站存储桶路由

来自分类Dev

AWS S3存储桶中对象的数量或大小是否会对性能产生影响

来自分类Dev

通过AWS CloudFront从单个S3存储桶为SPA多租户提供服务

来自分类Dev

AWS S3 sync创建的对象具有不同于存储桶的权限

来自分类Dev

AWS S3:关闭“存储桶阻止公共访问”时,拒绝访问对象

来自分类Dev

使用aws cli将S3对象URL上传到存储桶后,如何获取?

来自分类Dev

AWS S3错误的存储桶对象

来自分类Dev

编辑AWS S3存储桶重定向规则,以重定向到相同URL的param(url)

来自分类Dev

AWS S3存储桶问题

来自分类Dev

从 AWS S3 存储桶中删除对象(不在代码中)

来自分类Dev

aws 将对象上传到 S3 存储桶并将数据的详细信息传递给 lambda

来自分类Dev

AWS S3 存储桶策略

来自分类Dev

AWS S3 重定向仅适用于作为子域的存储桶,而不适用于作为目录的存储桶

来自分类Dev

AWS S3 存储桶中对象更新的问题

Related 相关文章

  1. 1

    AWS CLI从AWS CLI获取专用存储桶的S3 URL下载

  2. 2

    使用PowerShell DSC获取AWS S3存储桶对象

  3. 3

    使用AWS S3 REST API检索存储桶的对象而无需知道存储桶的区域

  4. 4

    如何编辑AWS S3存储桶对象?

  5. 5

    AWS S3存储桶日志与AWS CloudTrail

  6. 6

    AWS S3无法通过PHP SDK删除存储桶中的对象

  7. 7

    对象存在于Node.JS的AWS S3存储桶中

  8. 8

    如何在AWS S3存储桶和CloudFront中将非www重定向到www

  9. 9

    当源为S3存储桶时,AWS CloudFront返回http 307

  10. 10

    AWS CloudFront重定向到S3存储桶

  11. 11

    AWS Route 53 / S3存储桶将所有重定向到一个URL

  12. 12

    如何使用AWS C ++ SDK解析区域,存储桶和对象键的S3 URI?

  13. 13

    AWS s3重定向到另一个s3存储桶

  14. 14

    AWS CloudFront和S3,通过单个重定向处理WWW和HTTPS

  15. 15

    在EC2上运行存储在AWS S3存储桶中的Python脚本并将结果文件保存回S3存储桶

  16. 16

    每个子域的AWS S3静态网站存储桶路由

  17. 17

    AWS S3存储桶中对象的数量或大小是否会对性能产生影响

  18. 18

    通过AWS CloudFront从单个S3存储桶为SPA多租户提供服务

  19. 19

    AWS S3 sync创建的对象具有不同于存储桶的权限

  20. 20

    AWS S3:关闭“存储桶阻止公共访问”时,拒绝访问对象

  21. 21

    使用aws cli将S3对象URL上传到存储桶后,如何获取?

  22. 22

    AWS S3错误的存储桶对象

  23. 23

    编辑AWS S3存储桶重定向规则,以重定向到相同URL的param(url)

  24. 24

    AWS S3存储桶问题

  25. 25

    从 AWS S3 存储桶中删除对象(不在代码中)

  26. 26

    aws 将对象上传到 S3 存储桶并将数据的详细信息传递给 lambda

  27. 27

    AWS S3 存储桶策略

  28. 28

    AWS S3 重定向仅适用于作为子域的存储桶,而不适用于作为目录的存储桶

  29. 29

    AWS S3 存储桶中对象更新的问题

热门标签

归档