【问题标题】:PHP header redirect not working on production, blank pagePHP标头重定向不适用于生产,空白页面
【发布时间】:2011-09-08 16:08:54
【问题描述】:

我要把毛巾扔进去。有人可以帮我解决这个问题。 在我的本地开发服务器上,这部分 PHP 工作正常,它只是通过从一些变量中构造一个 url 来进行重定向。所以我按预期被重定向到这个页面。

$status = "0"; //unsubscribed
header('Location:http://www.skandium.com/manage-your-mailing-list.asp?status='.$status);
die();

在生产服务器上,我只是得到一个空白页。我知道 PHP 页面本身正在运行,因为在这条线之前和之前发生的所有其他事情都可以正常工作。我可以用一个简单的echo 替换这一行,并且可以看到 URL 也是正确的。

其他详情:

  • 托管在 windows 盒子上(开发也是 windows)
  • 通过 FASTCGI 运行的相同 PHP 版本

编辑:情节变厚

新页面中的以下代码在生产环境中运行良好。仍然没有解释为什么上面的代码在本地工作而不是在生产环境中工作。我似乎已经排除了标头重定向语句本身不是罪魁祸首。

<?php 

//test.php

//prevent page caching
header("Cache-Control: no-cache"); 
header("Expires: -1");

$status = "0"; //unsubscribed

header('Location:http://www.abc.com/manage-your-mailing-list.php?status='.$status);
die();

?>

【问题讨论】:

  • 您是否尝试过将重定向更改为完整的 http 路径而不是相对路径页面名称?
  • 您可以访问错误日志吗?他们提到了什么?
  • 在页面的开头尝试添加“ob_start();”在 php 标签中。希望这能解决您的问题。
  • @Arjan 我应该查看哪些日志文件?
  • @balanv 'ob_start();'导致页面根本无法加载,浏览器加载指示器一直在继续......

标签: php iis iis-7 fastcgi


【解决方案1】:

这些都不起作用。

我最终回应了 meta 重定向。

我也可以回显一个 javascript location.replace

【讨论】:

    【解决方案2】:

    您可以尝试以下几点:

    • 在发送重定向标头之前检查headers_sent() 是否为true
    • 设置error_reporting(E_ALL)和ini_set('display_errors', 1)
    • 使用 firebug 检查哪些(如果有)标头正在发送到浏览器

    【讨论】:

      【解决方案3】:

      试试这个..

      header('Location: http://www.abc.com/manage-your-mailing-list.php?status='.$status)
      

      我只是在冒号(:) 和 url 之间添加一个空格.. 我不知道这是否发生在其他人身上,但有时这种事情发生在我身上,有时无论出于何种原因这都有效..

      另外,你试过相对路径吗? 或在其他页面上,我的意思是“标题位置”是否适用于其他地方? 还是只发生在这个脚本上?

      【讨论】:

        【解决方案4】:

        确保 php 标签前没有空格

        【讨论】:

          【解决方案5】:

          文件是 UTF-8 编码的吗? 任何输出都可以阻止代码被执行,包括BOM。也许编码没有明确设置,但是您的开发机器假定为 UTF-8(并忽略了标记),而您的生产服务器没有。

          【讨论】:

          • 如何验证这一点?我正在使用记事本++,在“编码”菜单选项下,我看到“ANSI 编码”已选中。还有其他选项,例如“UTF-8 without BOM”等。
          • UTF-8 本身没有 BOM。我不知道如何在 notepad++ 中将编码更改为 UTF-8;您应该参考应用程序的文档。 (此外,还应更改包含的编码)。
          • 好的,我将页面和任何包含都保存为 UTF-8,它的行为仍然相同。
          猜你喜欢
          • 1970-01-01
          • 2011-04-14
          • 2019-05-22
          • 2018-02-28
          • 1970-01-01
          • 2015-09-30
          • 2011-02-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多