工作过程中经常会遇到特定方式传值的情况,比如使用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,启用配置就可以了。
评论已关闭!