在领先的web服务器(apache、nginx、IIS)上使用$_SERVER[';SCRIPT_NAME'


Is it reliable to use $_SERVER['SCRIPT_NAME'] on leading web servers (apache, nginx, IIS)

我刚刚发现,在apache下,像wp-login.php/test这样的URL可能会运行wp-loging.php脚本,也可能不会运行,这取决于虚拟主机/目录设置。这使得我的代码依赖于通过解析$_SERVER['REQUEST_URI']来知道哪个"根"脚本正在运行,这是不可靠的,如果可能的话,我希望避免复杂的字符串解析。

使用像if $_SERVER['SCRIPT_NAME'] == 'wp-login.php'这样的东西似乎是一个更好的选择,但我可以依靠它来为所有具有各种php集成模式(mod_php、fastcgi、cgi)的主要web服务器工作吗?我错过了更好的选择吗?

(对于那些想知道我为什么不添加define的人来说,这是一个wordpress核心文件,我不能也不想修改它)

foo.php/bar仅在AcceptPathInfo指令(或其在其他web服务器上的附属指令)已启用的情况下有效。

没有其他配置对此行为有影响。

是的,你可以依赖这个超级全球入口。