$ _SERVER ["SCRIPT_URL"]:什么时候可靠存在?

cla*_*219 8 php compatibility server-variables

在我的本地环境中(Apache 2.2.26上的PHP 5.4.24)$_SERVER["SCRIPT_URL"]存在,但我读到这个变量并不总是存在,即使我找不到它的确切时间和不存在的时间.

我想知道这个变量可靠地存在的要求.

Dan*_* W. 6

此变量在很大程度上取决于服务器的配置。

例如,当将 nginx 与 php5-fpm (fcgi) 一起使用时,您可以将变量作为 fpm_parameter 传递:

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
Run Code Online (Sandbox Code Playgroud)

scgi 也有类似的配置。

中有3种全局变量$_SERVER,有的取自客户端的请求头,不可靠,有的由PHP/Webserver(例如REMOTE_ADDR)设置,非常可靠,有的取决于你的配置,可靠取决于那个配置。


Wol*_*gel 5

它仅在您启用mod_rewrite时可用:

http://httpd.apache.org/docs/2.0/rewrite/rewrite_intro.html#EnvVar

  • 当然,您可以使用其他软件模拟该字段,但mod_rewrite是原始源.我假设问题是,如果代码使用该字段,那么代码将停止工作的情况. (2认同)