【发布时间】:2015-11-17 17:22:54
【问题描述】:
考虑下面的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
我明白了
[PHP_SELF] => /test.php
[SCRIPT_NAME] => /test.php/foo/bar
【问题讨论】: