В конечной точке моего веб-сервиса я добавляю некоторую строку в заголовок ответа http, а затем она перенаправляется на другой URL-адрес в сервисе. Это перенаправление 301, и написанный мной заголовок каким-то образом удаляется, когда этот ответ 301 отправляется в браузер.
Я вызываю функцию заголовка в PHP для записи в заголовок, а затем вызываю редирект для 301 редиректа. Есть ли какой-то шаг, который я пропустил? Вот грубый поток:
header("X-my_custom_header:blahblah");
redirect($new_url);
функция перенаправления вызывает 3 функции заголовка:
header("HTTP/1.1 301 Moved Permanently");
header( "Cache-Control: no-cache");
header("Location: ".$new_url);
Новая находка:
Если я переместу новую строку добавления заголовка в функцию перенаправления (как 4-я строка в функции), то я смогу увидеть эту строку.
Заранее спасибо!
Перенаправление 301 запускает новый запрос от браузера. Соответственно, на сервере создается новый ответ, и у этого нового ответа нет заголовков, сгенерированных как часть ответа 301.
Если вам необходимо сохранить некоторые данные, вам нужно будет либо сохранить их в сеансе, либо передать их через параметры GET по URL-адресу 301.
Других решений пока нет …