Hello! On Tue, Feb 25, 2014 at 12:39:53AM +0400, Александр Кунич wrote:
> Система debian squeeze > nginx 1.4.5 из репозиториев дебиан > > Клиент передаёт серверу в заголовках запроса дополнительный параметр > API_KEY. Необходимо передать его в $_SERVER['HTTP_API_KEY'] > Прописал в fastcgi_params следующее > > fastcgi_param HTTP_API_KEY $http_api_key; > > $_SERVER['HTTP_API_KEY'] при этом появляется, но пустой, хотя в заголовке > запроса этот параметр не пуст. > Но вот что интересно. Если заменить имя заголовка с API_KEY на API-KEY, то > всё работает как надо. > Это ошибка или так специально для чего-то задумано? Просто переименовать > этот параметр сейчас уже затруднительно, т.к. приложением многие уже > пользуются. Так задумано. Заголовки API_KEY и API-KEY разные, но в рамках принятой в CGI логики (а равно переменных в конфигах nginx'а) представления заголовков неотличимы друг от друга, т.к. "-" и "_" становятся "_". Поэтому nginx по умолчанию заголовки с символом подчёркивания считает некорректными и игнорирует. Если очень надо, такие заголовки можно разрешить с помощью директивы underscores_in_headers. Но следует понимать, что это может вылезти боком в других местах. Подробнее тут: http://nginx.org/r/underscores_in_headers/ru И да, явно указывать "fastcgi_param HTTP_API_KEY" - не нужно, все заголовки запроса по умолчанию передаются в fastcgi как HTTP_* параметры. Ваша проблема именно в том, что заголовок содержит подчёркивание и из-за этого игнорируется. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
