2011-06-26 106 views
35

我印製了$ _SERVER,我發現$ _SERVER['REDIRECT_URL']$_SERVER['REQUEST_URI']都具有相同的值。兩者有什麼區別?

回答

42

REQUEST_URI是在HTTP request line中使用的請求的URI路徑和查詢。 REDIRECT_URL is created by Apache發生內部重定向時:

REDIRECT_環境變量是根據重定向之前存在的環境變量創建的。它們被重命名爲REDIRECT_前綴,即HTTP_USER_AGENT變爲REDIRECT_HTTP_USER_AGENT

REDIRECT_URLREDIRECT_STATUSREDIRECT_QUERY_STRING保證設置,其他標題只有在錯誤條件之前存在時纔會設置。

請注意,REDIRECT_URL只包含URI路徑。

+3

'REDIRECT_URL'返回正常的URL,例如'/ review',另一方面'REQUEST_URL'返回包括查詢字符串例如'/ review?page = 4' – AlbertSamuel

+0

非常棒,我被卡住了很長時間 –

+0

@AlbertSamuel「'REQUEST_URL'」 - 這應該是'REQUEST_URI'(帶'I')。 – MrWhite

15

$_SERVER['REDIRECT_URL']僅在某些服務器上可用。改爲使用$_SERVER['REQUEST_URI']

+2

可以知道,他們可能有不同的行爲,因爲REQUEST_URI包含查詢字符串! (我的API有問題) – Miguel

11

REQUEST_URI也改變特殊字符,如空格爲「%20」等

相關問題