`$#u服务器[';SCRIPT#u NAME';]`包含REST资源,而不仅仅是php文件
考虑以下GET请求:www.foo.com/bar.php/rest/resource,则应为以下情况:`$#u服务器[';SCRIPT#u NAME';]`包含REST资源,而不仅仅是php文件,php,apache,rest,Php,Apache,Rest,考虑以下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(为我们的
$_SERVER['SCRIPT_NAME'] === 'bar.php';
这在我的本地机器上是正确的,在我们的开发服务器上也是如此。但在我们的测试服务器中:
echo $_SERVER['SCRIPT_NAME']; // bar.php/rest/resource
这是错误的。我很确定这是由一些Apache配置引起的,因为测试服务器在从Apache 2.2升级到2.4.7(为我们的组织添加了配置)时开始出现故障。我阅读了Apache升级/发行说明,似乎无法确定到底发生了什么
更多信息:
我已经签出,似乎我的PHP_SELF和SCRIPT_名称被切换了
[PHP_SELF]=>/test.PHP/foo/bar
[SCRIPT\u NAME]=>/test.php
我明白了
[PHP_SELF]=>/test.PHP
[SCRIPT_NAME]=>/test.php/foo/bar
脚本名称由Web服务器(Apache、NGINX等)定义。根据您的服务器配置,SCRIPT\u NAME
的值将不同。您需要检查两台机器上的vhost配置,并确保它们匹配。Spot on。我印象深刻。