Cloudfront重定向到S3端点

时间:2016-05-05 20:53:59

标签: amazon-s3 amazon-cloudfront

  1. 我使用端点地址设置了云端分发。
  2. 我想将/Latest文件夹的调用重定向到/12.50文件夹。
  3. 因此,我使用路由规则标记在S3控制台中定义了重定向规则。
  4. routing rule

    结果:重定向启动,但会将用户从云端URL移至端点URL。

    e.g。来自<mysite>.cloudfront.net/Latest的用户会被重定向到<bucket>.hpe-alm.s3-website-us-west-2.amazonaws.com/12.50

    问题:还有一种方法可以让重定向将用户保留在云端域上吗?

1 个答案:

答案 0 :(得分:2)

您可以在CloudFront中更改原始路径,而不是在Amazon S3中执行重定向。

  • 使用/12.50
  • 原始路径定义原点
  • 如果希望CloudFront分配指向其他版本,请编辑行为

以下是一些例子:

完全重定向

在这种情况下,我将根(dxxx.cloudfront.net)重新指向子目录:

  • 我创建了一个 Amazon S3存储桶并应用了一个存储桶策略,使其全部可公开阅读
  • 我在广告资源中创建了两个文件夹v1v2
  • 我为每个文件夹上传了两张不同的图片,但文件名相同
  • 我创建了一个 Amazon CloudFront发行版两个Origins ,分别指向v1v2
  • 我将分发的默认行为设置为指向v1来源
  • 分发准备就绪后,我访问了dxxx.cloudfront.net/picture.jpg。它从v1返回了图片。
  • 然后,我将行为修改为指向v2来源。分发准备就绪后,我访问了相同的网址,并从v2返回了图片。

重定向子目录

在这个例子中,我将dxxx.cloudfront.net/Latest重新指向了另一个子目录。

重要的区别是目标子目录必须包含/Latest子目录,因为它实际上指向dxxx.cloudfront.net/<version>/Latest,只有<version>部分被替换。

  • 在上面的示例中,我在/Latestv1子目录中添加了v2文件夹,并在每个子目录中添加了图片
  • 我添加了一个额外的行为,其中路径模式 /Latest/*指向v1来源
  • 分发准备就绪后,我访问了dxxx.cloudfront.net/Latest/picture.jpg。它从/Latest/v1返回了图片。
  • 然后我修改了/Latest行为以指向v2来源。分发准备就绪后,我访问了相同的网址,并从/Latest/v2返回了图片。