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

WordPress插件PHP重定向异常:一站正常一站返回原页面带HTML

WordPress重定向问题修复方案

你的代码存在几个明显问题,导致跨站点表现不一致:

  • 重复发送重定向头:wp_redirect()本身已经负责处理Location头的发送,额外手动调用header()属于重复操作,可能触发头信息已发送的错误。
  • 判断逻辑错误:wp_redirect()的返回值仅表示是否成功设置头信息,不能作为执行后续代码的判断依据。
  • 脚本未及时终止:即使wp_redirect()执行成功,若不立即终止脚本,后续页面内容输出会直接破坏重定向流程。
  • URL构建不安全:直接依赖$_SERVER['HTTP_HOST']可能被恶意请求头篡改,应该用WordPress内置函数生成可靠的站点URL。

修正后的代码

// 用WordPress内置函数构建安全的重定向URL
$url = home_url('/confirmation-success-rdv');

// 执行重定向并立即终止脚本
wp_redirect($url);
exit;

为什么两个站点表现不同?

大概率是其中一个站点开启了输出缓冲(Output Buffering),掩盖了"头信息已发送"的警告,让错误代码侥幸生效;而另一个站点没有开启缓冲,当重定向前已经有页面内容(哪怕是一个空格、PHP文件的BOM头)输出时,wp_redirect()无法发送头信息,导致重定向失败,页面只能输出原内容加上部分HTML。

排查建议

  1. 在wp-config.php中开启调试模式(设置define('WP_DEBUG', true);),查看是否有"Headers already sent"的错误提示,定位提前输出内容的位置。
  2. 检查插件代码、主题模板中,重定向前是否有echo语句、HTML标签,甚至PHP文件开头/结尾的多余空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 07:31:17