我正在尝试将我的PHP Web应用程序(RESTful API)从Apache转换为Nginx。
它在Apache中运行良好,但代码库目前使用apache_request_headers()
方法来检索我们用于身份验证的自定义标头。示例标题为auth_system_signature
。
我原本希望用getallheaders()替换对该函数的调用是一个简单的例子。但是,它似乎是this method is undefined when using php-fpm。
我看到各种"workarounds" on the net将定义该函数,如果它不存在,但它们似乎都在$_SERVER
上循环,而apache_request_headers()
没有我的自定义标题。我很确定如果确实如此,那么我们首先不会使用php-cgi
。
有没有办法用php-fpm检索请求中的自定义标头,还是只需要转到使用chromedriver
?
答案 0 :(得分:2)
事实证明,默认情况下,Nginx不会传递其中包含下划线的标头。您可以使用连字符as others have done替换自定义标题的下划线,也可以update your nginx.conf file设置:
underscores_in_headers on
现在,您的标题将显示在$_SERVER
超全局中,并带有HTTP_
前缀。他们也将全部上限。