2015-11-17 13 views
0

请考虑以下GET请求:www.foo.com/bar.php/rest/resource,那么应该是这样的情况:

$_SERVER['SCRIPT_NAME'] === 'bar.php'; 

这在我的本地机器以及我们的开发服务器中都是如此。但在我们的测试服务器上:

echo $_SERVER['SCRIPT_NAME']; // bar.php/rest/resource 

这是错误的。我非常确定这是由Apache配置引起的,因为当测试服务器从Apache 2.2升级到2.4.7(为我们的组织添加配置)时,测试服务器发生故障。我阅读了Apache升级/发行说明,似乎无法确定发生了什么。

更多信息: 我已经签出PHP_SELF vs PATH_INFO vs SCRIPT_NAME vs REQUEST_URI,似乎我的PHP_SELF和SCRIPT_NAME是

[PHP_SELF] => /test.php/foo/bar [SCRIPT_NAME] => /test.php

switched.Instead我得到

[PHP_SELF] => /test.php [SCRIPT_NAME] => /test.php/foo/bar

回答

2

SCRIPT_NAME由网络服务器(Apache,NGINX等)定义。根据您的服务器配置,SCRIPT_NAME的值将有所不同。您需要检查两台机器上的vhost配置,并确保它们匹配。

+0

现货。我很佩服。 – ComputrScientist

相关问题