因此,當我部署了一些我認爲已經測試過的代碼時,我感到非常吃驚。看起來我的測試機器和我的服務器之間肯定有一些區別。具有標題重定向的完全相同的代碼在我的測試機器上完美工作,並且完全不在服務器上。服務器上的重定向根本沒有發生,結果留下空白頁面。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