$_SERVER变量没有设置我的自定义标头


The $_SERVER variable is not setting my custom header

我面临着一个非常奇怪的情况,我在三台不同的机器上设置了一个Apache服务器,一台是Ubuntu,另一台是Mac,另一个是windows 8,我试图在一个非常基本的post请求中向Php脚本发送一个自定义的头,比如X_USER(三台机器中都有相同的脚本),现在为了获得我的头,我使用$_SERVER var,比如$_SERVER['HTTP_X_USER'],然而,在Mac中,我得到的值很好,但在其他2台机器中,该值不存在,我在$_SERVER var中做了var_dump,我可以确认头不存在,没有配置任何花哨的东西,只有默认值。

有人能告诉我我是否需要配置什么吗,或者我以错误的方式访问var,或者为什么我没有得到头,也许是Apache级别或php级别的东西,谢谢你的帮助!!

我想我找到了原因,例如,我将头作为X_REST_USERNAME发送,但在apache版本2.4_X上,头需要使用破折号作为分隔符,而不是像X-REST-USERNAME这样的下划线,我在mac上有apache 2.2,其他版本有2.4,但在这两个版本中,破折号分隔符都可以,我不知道这一切,谢谢大家!

尝试

$headers = apache_request_headers();
echo $headers['x_user'];