Cloudfront重定向到S3端点

Reu*_*ine 5 amazon-s3 amazon-cloudfront

  1. 我使用端点地址设置了一个云端分发.
  2. 我想将/Latest文件夹的调用重定向到该文件/12.50夹.
  3. 所以我使用路由规则标记在S3控制台中定义了一个重定向规则.

路由规则

结果:重定向启动,但将用户从云端URL移动到端点URL.

例如,进入的用户<mysite>.cloudfront.net/Latest被重定向到<bucket>.hpe-alm.s3-website-us-west-2.amazonaws.com/12.50.

问题:重定向是否有办法让用户保持在云端域?

Joh*_*ein 2

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

  • 定义一个原点,其原点路径/12.50
  • 当您希望 CloudFront 分配指向不同版本时编辑其行为

以下是一些示例:

完全重定向

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

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

子目录重定向

在这个例子中,我重新指向dxxx.cloudfront.net/Latest一个不同的子目录。

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

  • 对于上面的示例,我在和子目录/Latest中添加了一个文件夹,并在每个子目录中放入图片v1v2
  • 我添加了一个额外的行为,带有指向原点的路径模式/Latest/*v1
  • 分发准备就绪后,我访问了dxxx.cloudfront.net/Latest/picture.jpg. 它返回了来自 的图片/Latest/v1
  • 然后我修改了/Latest行为以指向原点v2。分发准备就绪后,我访问了相同的 URL,它返回了来自 的图片/Latest/v2