2013-02-28 138 views
0

我敢肯定,這是不可能的,我需要在login.php if $_GET['reason'] isset上設置標頭,但有人可以澄清,我不能設置響應代碼,然後改變位置?PHP自定義標頭重定向

header('HTTP/1.1 403 Forbidden'); 
header("Location: http://domain.com/login.php?reason=ipbanned"); 

回答

1

對,這是不可能的。 「位置」標題將HTTP響應代碼設置爲302 Found(或另一個3xx重定向代碼),並且一次不能發送兩個響應代碼。

更新:

正確的方法做你想要的是發送禁止頭的重定向頁面,即在login.php如果$_GET['readon']=='ipbanned',而不是在重定向頁。

+0

如果您未指定響應代碼,則默認值爲302.如果您自己設置響應代碼,則會覆蓋此值。 – 2013-02-28 11:01:34

+0

感謝您的更正@Matt,我更新了答案 – 2013-02-28 11:02:23

+0

所以,我可以設置403響應代碼並在同一頁面上重定向? – amof 2013-02-28 11:05:06