在我的本地環境中(Apache 2.2.26上的PHP 5.4.24)$_SERVER["SCRIPT_URL"]
存在,但我讀到這個變量並不總是存在,即使我找不到它到底是什麼時候,什麼時候沒有。
我想知道什麼是需要這個變量可靠地存在。
在我的本地環境中(Apache 2.2.26上的PHP 5.4.24)$_SERVER["SCRIPT_URL"]
存在,但我讀到這個變量並不總是存在,即使我找不到它到底是什麼時候,什麼時候沒有。
我想知道什麼是需要這個變量可靠地存在。
當你啓用了mod_rewrite這是唯一可供選擇:
http://httpd.apache.org/docs/2.0/rewrite/rewrite_intro.html#EnvVar
該變量在很大程度上依賴於服務器的配置。
當使用帶的php5-FPM(FCGI)例如nginx的,你會傳遞變量作爲fpm_parameter:
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
沒有爲SCGI一個類似的結構。
$_SERVER
有3種類型的全局變量,其中一些取自客戶端的請求頭並且不可靠,有些由PHP/Webserver設置(例如REMOTE_ADDR
),非常可靠,有些取決於您的配置根據配置,這可能是可靠的。
不,他們在那裏,即使沒有mod_rewrite,甚至在那裏,當你不使用Apache。不是每個人都使用Apache! – DanFromGermany
@DanFromGermany好吧,OP使用的是Apache :) –
當然你可以用其他軟件模擬這個領域,但是mod_rewrite是最初的源代碼。我假設的問題是,如果代碼使用該字段,代碼將停止工作的情況是什麼。 –