nginx环境下PHP如何获取自定义header信息及偶尔无法获取header信息的解决方案

原创 zhaoliang  2016-04-09 12:18  阅读 5,369 views 次

工作过程中经常会遇到特定方式传值的情况,比如使用header来传递一些信息较为敏感的数据,一般默认的LNAP环境下PHP是无法直接在$_SERVER中获取自定义的header参数的,怎么办?

只需要在nginx的vhost配置中解析PHP的location内,添加新的fastcgi_param即可,比如我们要在header中添加一项channel参数,配置如下:

注意:1.此处是通过$http_channel来获取header中的channel信息的,不区分大小写,对应nginx中的$http_name变量,name就是我们可以用来自定义的变量;2.nginx服务器下 自定义请求头部的名称不应该包括空白、冒号、换行和下划线;

如果使用了自定义的带下划线的header参数,nginx会自动忽略掉,如果一定要使用下划线,也可以在http模块中添加underscores_in_headers on就可以识别自定义的下划线参数了。nginx对header参数做了限制,默认undercores_in_header为off,启用配置就可以了。

本文地址:http://blog.58cm.cn:8088/archives/191.html
版权声明:本文为原创文章,版权归 zhaoliang 所有,欢迎分享本文,转载请保留出处!

评论已关闭!