【发布时间】:2026-02-09 21:20:06
【问题描述】:
在我的本地环境中(Apache 2.2.26 上的 PHP 5.4.24)$_SERVER["SCRIPT_URL"] 存在,但我读到这个变量并不总是存在,即使我无法确切找到它的确切时间和时间不是。
我想知道这个变量需要什么才能可靠地存在。
【问题讨论】:
标签: php compatibility server-variables
在我的本地环境中(Apache 2.2.26 上的 PHP 5.4.24)$_SERVER["SCRIPT_URL"] 存在,但我读到这个变量并不总是存在,即使我无法确切找到它的确切时间和时间不是。
我想知道这个变量需要什么才能可靠地存在。
【问题讨论】:
标签: php compatibility server-variables
只有在启用 mod_rewrite 时才可用:
http://httpd.apache.org/docs/2.0/rewrite/rewrite_intro.html#EnvVar
【讨论】:
SCRIPT_URL 和 SCRIPT_URI 只设置在其中一台上?
这个变量很大程度上取决于服务器的配置。
例如,当将 nginx 与 php5-fpm (fcgi) 一起使用时,您可以将变量作为 fpm_parameter 传递:
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
scgi 也有类似的配置。
$_SERVER中有3种全局变量,有些取自客户端的请求头,不可靠,有些是PHP/Webserver设置的(例如REMOTE_ADDR)非常可靠,有些依赖根据您的配置,这可能是可靠的,具体取决于该配置。
【讨论】: