在我的本地环境中(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是最初的源代码。我假设的问题是,如果代码使用该字段,代码将停止工作的情况是什么。 –