У меня также есть эта проблема на экземпляре 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
?
Это решает проблему. Я добавил 'underscores_in_headers on;' в файл конфигурации nginx для этого домена, и я могу получить заголовки, которые мне нужны, из '$ _SERVER'. –