关于$_SERVER['SCRIPT_URL']的来源问题

$_SERVER['SCRIPT_URL']并不是标准的CGI/SSI环境变量,只有在请求应用了路径重写(apache的mod_rewrite)才会产生,官方文档上说:

此模块会跟踪两个额外的(非标准)CGI/SSI环境变量,SCRIPT_URL和SCRIPT_URI。他们包含了当前资源的逻辑网络视图,而标准CGI/SSI变量SCRIPT_NAME和SCRIPT_FILENAME包含的是物理系统视图。

注意:这些变量保持的是其最初被请求时的URI/URL,即在任何重写操作之前的URI/URL。其重要性在于他们是重写操作重写URL到物理路径名的原始依据。
示例SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.htmlSCRIPT_FILENAME=/u/rse/.www/index.htmlSCRIPT_URL=/u/rse/SCRIPT_URI=http://en1.engelschall.com/u/rse/

这里要特别注意的是你的重写规则必放在apache的*.conf配置中才会产生这个变量,写在目录中的.htaccess是不会产生的。

$_SERVER['SCRIPT_URL']并不是标准的CGI/SSI环境变量,只有在请求应用了路径重写(apache的mod_rewrite)才会产生,官方文档上说:

此模块会跟踪两个额外的(非标准)CGI/SSI环境变量,SCRIPT_URLSCRIPT_URI。他们包含了当前资源的逻辑网络视图,而标准CGI/SSI变量SCRIPT_NAMESCRIPT_FILENAME包含的是物理系统视图。

注意:这些变量保持的是其最初被请求时的URI/URL,即在任何重写操作之前的URI/URL。其重要性在于他们是重写操作重写URL到物理路径名的原始依据。

示 例SCRIPT_NAME=/sw/lib/w3s/tree/global/u/rse/.www/index.htmlSCRIPT_FILENAME=/u/rse/.www/index.htmlSCRIPT_URL=/u/rse/SCRIPT_URI=http://en1.engelschall.com/u/rse/

       这里要特别注意的是你的重写规则必放在apache的*.conf配置中才会产生这个变量,写在目录中的.htaccess是不会产生的。

原文地址:https://www.cnblogs.com/setsail/p/3078198.html