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

CloudFront+Apache部署WordPress遇过多重定向问题求助

解决CloudFront+Apache部署WordPress的重定向及index.php隐藏问题

Apache端配置调整

  • 先确认mod_rewrite模块已启用:执行sudo a2enmod rewrite,然后重启Apache服务(sudo systemctl restart apache2)。
  • 替换WordPress根目录下.htaccess的内容为以下规则,确保重写路径匹配CloudFront的/blog路径:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
  • 检查Apache虚拟主机配置,在对应WordPress目录的<Directory>块中开启重写权限:
<Directory /var/www/html/blog>
    AllowOverride All
    Require all granted
</Directory>

修改后务必重启Apache生效。

WordPress站点URL修正

  • 通过服务器IP访问后台(myserviceip/blog/wp-admin),进入「设置→常规」,将以下两个地址统一设置为CloudFront的完整URL:
    • WordPress地址(URL):https://xxx.cloudfront.net/blog
    • 站点地址(URL):https://xxx.cloudfront.net/blog
  • 若无法登录后台,直接操作数据库:找到wp_options表,更新siteurl和home字段的值为上述CloudFront地址。

CloudFront分发配置优化

  • 转发Host头:进入CloudFront分发的「行为」设置,编辑对应路径的行为,在「缓存策略和origin请求策略」中选择包含转发Host头的策略(或自定义策略,确保Host头被转发到Apache origin)。这是避免重定向循环的核心——如果Apache收到的Host是服务器IP,WordPress会生成IP地址的URL,导致CloudFront再次触发重定向。
  • 设置默认根对象:在CloudFront分发的「常规」设置里,将默认根对象设为blog/index.php,这样访问xxx.cloudfront.net/blog时,CloudFront会自动请求origin的/blog/index.php。
  • 协议匹配:如果CloudFront使用HTTPS,确保origin协议策略设置为「HTTP only」或「Match Viewer」,同时WordPress站点URL必须用HTTPS,避免因协议不一致触发重定向。
  • 清理缓存:修改配置后,手动清理CloudFront的缓存,避免旧的重定向响应被缓存导致问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 03:07:47