因此,当我部署了一些我认为已经测试过的代码时,我感到非常吃惊。看起来我的测试机器和我的服务器之间肯定有一些区别。具有标题重定向的完全相同的代码在我的测试机器上完美工作,并且完全不在服务器上。服务器上的重定向根本没有发生,结果留下空白页面。PHP标题(“位置:...”)在一台计算机上运行,而不是在另一台计算机上运行
头文件在脚本中间的某处被调用 - 但是没有输出。它不会输出任何东西,直到脚本的最后。在一切运行之后很久。它缓冲一切。
服务器和测试机器都运行相同的PhP版本,相同的Apache版本。配置文件中是否有一些可以让头部发生一个而不是另一个发生的东西?有没有其他事情会导致它失败?
编辑:
下面是设置标题行:
public function setRedirect($url) {
header('Location: '.$url);
}
而这里的调用代码:
$url = new URL('index');
$this->layout->setRedirect($url->toString());
凡URL::toString()
总是产生一个完全合格的域名,在这种情况下:http://domain/index.php?action=index
我检查了Php和Apache错误日志。纳达。
您是否重定向到绝对(完全限定)的URL? – 2010-08-09 16:01:29
只是为了完整:您可以包含具有“header()”调用的行吗? – Tomalak 2010-08-09 16:02:18
@Peter Bailey @Tomalak完成(是)并完成。查看修改。 – 2010-08-09 16:18:37