2013-02-21 48 views
1

我在我的一個項目中使用PHP重定向。我不喜歡這樣寫道:PHP - header()重定向:Firebug日誌404 - 爲什麼?

header('Location: http://domain.net/?cig=warn&onum=' . $onum . '&cnum=' . $cnum . '&c=' . $c . '#Form'); 

所以你看,這是一個正常使用PHP的header()功能,其中的一些變量包含在URL中。
它的工作,但在測試使用Firebug的頁面,我得到這個錯誤在控制檯:

"NetworkError: 404 Not Found - http://domain.net/?cig=warn&onum=12&cnum=73&c=ui#Form" 

有實際上我做的方式有什麼錯誤的是這只是螢火被挑剔,因爲所有的參數和錨?

<?php 
// This must appear before any output is sent! 
status_header(200); 
?> 

你必須拉:

+1

那麼,呃,是找到的網頁? – 2013-02-21 19:42:53

+0

是的,它的工作,我只是想知道爲什麼Firebug給我這個錯誤。 – Sven 2013-02-21 19:44:15

+0

由於某種原因,目標位置是否可以*發送* 404? – 2013-02-21 19:44:38

回答

0

由於此頁過着WordPress的環境中,你必須通過手動設置它之前就被送進了頭文件(使用WordPress的status_header()功能)強制200個狀態碼在WordPress的功能顯然是這樣。問題在於WordPress在你的頁面有機會處理它之前攔截請求。它無法找到「頁面」並設置404響應代碼,最終被髮回。

當我已經在過去的WordPress的功能來拉,我已經包括在頁面上這兩條線這樣做:

define('WP_USE_THEMES', false); 
require_once("/path/to/my/site/wp-blog-header.php"); 

現在,這麼說,我已經頁面過去做這件事的時候和我的WordPress安裝有着相同的外觀和感覺。可能有一個更好的方法來單獨提取功能;你必須參考WordPress文檔來找出(我不知道是否有)。如何正確執行此操作可能是WordPress StackExchange site的一個好問題。

+0

你的解釋聽起來符合邏輯。現在的問題是,只要我包含('../../../../wp-includes/functions.php');',腳本完全停止工作。我是否需要通過另一個文件訪問Wordpress functions.php? – Sven 2013-02-21 20:52:28

+0

我會更新我的帖子,我將它們拉進去。 – 2013-02-21 22:29:22

+0

事實上,我可以在文件中使用'status_header',儘管它不在標準的Wordpress文件中。但Firebug劇照顯示了404。我用'function_exists'進行了測試,如果'status_header'可用,那麼問題必須在其他地方。 – Sven 2013-02-21 23:17:55