CloudFront路径模式配置:实现URL不变转发博客内容
解决CloudFront /blog/*路径跳转问题
1. 修复EC2博客源站的跳转配置
你的博客服务(如Nginx、Apache)大概率是检测到请求Host头不符或路径不匹配,主动返回了跳转响应。以Nginx为例,修改配置:
- 允许
example.com作为Host头访问:server { listen 443 ssl; server_name blog.example.com example.com; # 新增example.com支持 # 保留原有SSL证书、加密配置... # 处理/blog/前缀请求,重写路径去掉/blog location ^~ /blog/ { rewrite ^/blog/(.*)$ /$1 break; root /path/to/your/blog/root; # 替换为博客文件实际目录 index index.html index.php; } # 保留原blog.example.com根路径处理逻辑 location / { root /path/to/your/blog/root; index index.html index.php; } } - 重启Nginx生效:
sudo systemctl restart nginx
如果是Apache,需修改ServerName支持多域名,并配置RewriteRule处理路径前缀。
2. 调整CloudFront行为配置
进入CloudFront控制台,找到对应分发,编辑/blog/*行为:
- 原点域名:确认设置为
blog.example.com - 查看器协议策略:选择
HTTPS only(与源站协议保持一致) - 原点请求策略:选择
Managed-AllViewerExceptHostHeader,若博客依赖Host头,可自定义策略转发example.com作为Host值 - 缓存策略:选择
Managed-CachingOptimized,动态内容占比高的话可缩短TTL或临时禁用缓存测试 - 转发规则:根据博客需求配置Cookie、查询字符串转发(如需要登录状态则转发对应Cookie)
3. 验证并清除CloudFront缓存
配置修改后等待分发部署完成(通常5-15分钟),手动清除/blog/*路径缓存:
- 进入分发的「缓存」标签页
- 点击「创建无效」,输入
/blog/*提交
之后访问https://example.com/blog/即可保持URL不变,直接加载博客内容。
内容的提问来源于stack exchange,提问作者mohammad obaid
相关产品推荐
相关产品推荐

