所有外部網址看起來都像'module/action?key1 = param1'。沒有可能的定製 - 但速度很快。 區別在於第一個使用PHP的GET,第二個使用PATH_INFO。PHP中的PATH_INFO究竟是什麼?
我見過PATH_INFO
幾次,但仍然不知道究竟是什麼。它有什麼作用?
所有外部網址看起來都像'module/action?key1 = param1'。沒有可能的定製 - 但速度很快。 區別在於第一個使用PHP的GET,第二個使用PATH_INFO。PHP中的PATH_INFO究竟是什麼?
我見過PATH_INFO
幾次,但仍然不知道究竟是什麼。它有什麼作用?
實際上,PATH_INFO
與提供PHP頁面的Apache Web服務器相關,而不是PHP本身。
PATH_INFO
是Apache在打開AcceptPathInfo
directive時設置的環境變量。它將包含追蹤路徑名信息,該信息跟隨實際文件名或現有目錄中不存在的文件,無論該請求是被接受還是被拒絕。然後將環境變量傳遞給負責渲染頁面的Apache/CGI模塊。
該變量可通過PHP以$_SERVER['PATH_INFO']
訪問。
例如,假設位置/test/
指向僅包含單個文件here.html
的目錄。然後請求/test/here.html/more
和/test/nothere.html/more
都收集/more
爲PATH_INFO
。
由於變量PATH_INFO是定義CGI你也應該在那裏看看的一部分;)
更準確http://tools.ietf.org/html/rfc3875#section-4.1.5 – gavenkoa 2014-05-12 15:57:30
閱讀你的答案後,我們可以推斷出依賴PATH_INFO是不好的做法,事實並非如此。 PATH_INFO是CGI定義的一部分(正如SimonSinCity指出的那樣)。它受到大多數Web服務器的支持,而不僅僅是Apache。 – 2014-08-09 09:29:50