关于$_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_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是不会产生的。