2016-03-23 3 views
2

У меня также есть эта проблема на экземпляре EC2 с последней сборкой Amazon Linux. Функция getallheaders() не работает, когда на nginx. Все размещенные замены для getallheaders() получают только значения от $_SERVER. Проблема в том, что заголовков, в которых я нуждаюсь, нет.getallheaders() отсутствует при использовании nginx и php

Я тестирую свою оригинальную реализацию, используя Postman (приложение для Chrome). Он имеет вкладку «Заголовки» и вкладку «Тело». Я могу найти записи на вкладке «Тело» в массиве $_POST. Записи на вкладке «Заголовки» отсутствуют или в любом из других глобальных массивов.

Код, над которым я работаю, - это веб-сервис для приложения (который я не контролирую), поэтому я не могу изменить характер вызовов.

Вот заголовки, которые я получаю при вызове getallheaders() работает на Apache (я снял несколько для ясности):

Array 
(
    [Host] => api.dashforhealth.com 
    [Connection] => keep-alive 
    [Cache-Control] => no-cache 
    [Origin] => chrome-extension://fhbjgbiflinjbdggehcddcbncdddomop 
    [api_key] => this-is-not-the-real-api-key 
    [Content-Type] => application/x-www-form-urlencoded 
    [Postman-Token] => 76069288-e74e-3791-eb42-f166454d8822 
    [auth_key] => this-is-not-the-real-auth-key 
    [Accept] => */* 
) 

Два меня интересует являются api_key и auth_key. Как я могу получить эти заголовки при работе в nginx?

ответ

1

Там, как представляется, установка для этого: underscores_in_headers

http://nginx.org/en/docs/http/ngx_http_core_module.html#underscores_in_headers

+1

Это решает проблему. Я добавил 'underscores_in_headers on;' в файл конфигурации nginx для этого домена, и я могу получить заголовки, которые мне нужны, из '$ _SERVER'. –

Смежные вопросы