2012-08-25 49 views
2

工作在所有我工作的一個PHP代碼,並有header('Location: '.$location, TRUE, 200);,它並沒有重定向到$location(價值在這裏是「https://thepiratebay.se/」)。我列出了所有標題,請幫助。的「位置」標頭不是在PHP

您可以看到Location標題存在但未重定向到。爲什麼?

瀏覽器測試:Chrome,Firefox,IE,Safari。

集管分別爲(如圖所示由Chrome):

HTTP/1.1 200 OK 
Date: Sat, 25 Aug 2012 15:10:54 GMT 
Server: Apache/2.4.2 (Win32) PHP/5.4.4 
X-Powered-By: PHP/5.4.4 
Location: https://thepiratebay.se/ 
Content-Length: 5935 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: text/html 
+0

如果瀏覽器沒有重定向,那不是PHP的錯。很顯然'header()'調用工作得很好。 – FtDRbwLXw6

+0

什麼可能被打破? –

回答

5

你的錯誤是200響應代碼。

改變這一行:

header('Location: '.$location, TRUE, 200); 

爲了

header('Location: '.$location, TRUE, $code); 

$code要麼301或302(永久VS暫時Moved轉移)。

+0

這只是工作!但是我感到困惑的是,這個工作更早,現在它沒有奏效。反正謝謝! –

+1

好吧,如果你完全跳過響應代碼參數,PHP會自動發送一個302響應代碼給'Location'標頭。 –

+0

不要忘記307和308(從HTTP/1.1開始)。 – FtDRbwLXw6