Я попытался получить все заголовки, используя apache_request_headers (), $ _SERVER, $ _ENV и getallheaders ().
Я знаю, что Apache 2.4 сбрасывает неизвестные заголовки по соображениям безопасности и пытался обойти это, добавив:
SetEnvIfNoCase ^X (.*) HTTP_CUSTOM=$0
RequestHeader set HTTP_CUSTOM %{HTTP_CUSTOM}e env=HTTP_CUSTOM
который успешно перехватывает / переименовывает известные заголовки, но при попытке перехвата X-Custom-Header он всегда пуст.
Что может быть причиной?
Так что я не совсем уверен, что вы пытаетесь сделать.
Если вы пытаетесь добавить заголовки, начинающиеся с X, из вашего запроса в ваш ответ, я бы использовал это в вашем файле htaccess.
Header echo ^X
Если вы пытаетесь использовать значения заголовка в вашем скрипте PHP, тогда они должны быть в вашем $_SERVER
массив, но имена нормализованы. НАПРИМЕР
X-Custom-Header: blah
X-Na-Bra: true
можно получить доступ из
<?php
// note that headers are prefixed with "HTTP" and "-" and changed to "_"echo $_SERVER['HTTP_X_CUSTOM_HEADER'];
echo $_SERVER['HTTP_X_NA_BRA'];
// either way you should be able to find them with a print_r($_SERVER);
// print_r(getallheaders()); should show the headers without normalized names
$tempArray = getallheaders();
echo $tempArray['X-Custom-Header'];
?>
Похоже, вы хотите получить значения из динамического числа заголовков, которые начинаются с X. Если это так, то ваш код не будет работать в любом случае. Ваш код (если бы он работал) всегда содержал бы прошлой значение заголовка, который начинается с X. Таким образом, если у вас есть более 1 заголовка, который начинается с X, то вы пропустите значения Используя ваш код, вам нужно будет создать правило для каждого заголовка, который вы хотите передать в свой PHP-скрипт, что звучит как боль.
Если я что-то упустил, то прокомментируйте ниже, и я обновлю этот ответ.
Других решений пока нет …