You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将网站非www版本重定向到www版本,避免CloudFront重定向循环?

解决CloudFront与源站重定向循环问题

方案一:修改源站.htaccess规则,排除CloudFront请求

问题核心是CloudFront访问源站时,会被源站的重定向规则指向www域名,而www域名又指向CloudFront,形成循环。我们可以通过判断请求是否来自CloudFront,跳过重定向逻辑。

CloudFront向源站发起请求时,会自动添加X-Amz-Cf-Id请求头,利用这个特征修改.htaccess规则:

<IfModule mod_rewrite.c>
RewriteEngine On
# 仅对非CloudFront的请求执行重定向
RewriteCond %{HTTP_HOST} ^oasisdigital.com.ar [NC]
RewriteCond %{HTTP:X-Amz-Cf-Id} ^$
RewriteRule ^(.*)$ https://www.oasisdigital.com.ar/$1 [L,R=301]
</IfModule>

规则说明

  • %{HTTP:X-Amz-Cf-Id} ^$:判断请求头中是否没有X-Amz-Cf-Id,即请求不是来自CloudFront
  • 只有普通用户直接访问oasisdigital.com.ar时,才会触发301重定向到www版本;CloudFront的源站请求会跳过该规则,避免循环

方案二:在CloudFront层面直接处理重定向(推荐)

将重定向逻辑从源站转移到CloudFront,彻底避免源站与CDN的循环问题:

  1. 登录CloudFront控制台,找到目标分发
  2. 进入行为标签,编辑默认行为(或对应路径的行为)
  3. 在重定向行为区域,选择「重定向到另一个域名」
  4. 配置参数:
    • 目标域名:www.oasisdigital.com.ar
    • 协议:选择「匹配查看器」或「HTTPS」(建议用HTTPS)
    • 状态码:选择301(永久重定向)
  5. 添加条件:在缓存键和源请求的条件中,添加规则:当HTTP主机头等于oasisdigital.com.ar时触发该重定向

优势

  • 重定向在CDN边缘节点完成,减少源站请求量
  • 从根源上避免循环,逻辑更清晰

注意事项

  • 若使用方案一,确保CloudFront源站配置的「源域名」为oasisdigital.com.ar,且未强制修改请求的Host头为www版本
  • 301重定向会被浏览器缓存,测试时请使用隐私窗口或清除浏览器缓存

内容的提问来源于stack exchange,提问作者Jasper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 19:13:28