2010-04-11 230 views
0

我有一個很大的PHP應用程序。在我改變了一些設置之後,我得到了一個重定向循環(即,瀏覽器一遍又一遍地重定向到同一頁面)。跟蹤重定向循環

問題是我不知道在這個應用程序中哪個命令(哪個行在哪個PHP文件中)導致重定向。有沒有辦法跟蹤調用header()函數?或者 - 更好 - 是否有一種方法可以跟蹤PHP中的重定向?

由於提前,
米歇爾

+0

也許XDebug或任何日誌記錄機制可能會有所幫助。 – Hanseh 2010-04-11 18:59:17

回答

1

您可以使用XDebug和它的功能,跟蹤功能爲。 http://xdebug.org/docs/execution_trace說:

Xdebug允許你記錄所有的函數調用,包括參數和返回值到不同格式的文件。

一旦你找到了呼叫,你可以進入代碼並逐步執行它。然後你需要一個XDebug的前端,例如netbeans

1

如果您的應用程序被重定向到相同的URL,你應該檢查重定向之前,例如:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
if ($targetHost !== $_SERVER['HTTP_HOST'] && 
    $targetPath !== $_SERVER['REQUEST_URI_PATH'] && 
    $targetQuery !== $_SERVER['QUERY_STRING']) { 
    // redirect 
} 
+0

謝謝。這就是我想要做的,但我不知道該把代碼放在哪裏,因爲我不知道哪個指令會導致重定向。這是我的原始問題。 – 2010-04-11 16:14:07

0

不是在PHP但在HTTP。當然是。帶上自己的任何HTTP嗅探器,如LiveHTTPHEaders firefox插件,並實時觀看所有重定向:)