@eloki
Всего по-маленьку

Почему Битрикс на хостинге удаляет Last-Modified?

Локально все работает нормально, но при переносе на хостинг, в ответах сервера нет заголовка
Last-Modified.
На хостинге apache за nginx, у nginx настройка ssi off
При этом если выполнить отдельно скрипт с установкой этого заголовка - заголовок ставится.
Т.е. стоит подключить bitrix/header.php - все, заголовков нет.

Это работает (заголовок есть):
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", 1294844676);
header('Last-Modified: '. $LastModified);

Если подключить только служебный заголовок (работает):
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", 1294844676);
header('Last-Modified: '. $LastModified);

Это не работает (заголовка нет):
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$LastModified = gmdate("D, d M Y H:i:s \G\M\T", 1294844676);
header('Last-Modified: '. $LastModified);
  • Вопрос задан
  • 390 просмотров
Пригласить эксперта
Ответы на вопрос 1
SagePtr
@SagePtr
Еда - это святое
Если разница между наличием или отсутствием заголовка зависит от того, был ли подключён файл bitrix/header.php или не был - то логичнее всего проверить содержимое этого файла, что там происходит.
Вангую, в этом файле происходит вывод данных (намеренно или случайно из-за попавшего в файл непечатного символа), из-за этого последующие вызовы header завершаются с ошибкой, но ошибки выводятся в лог, а не в браузер. Почему при этом на другом сервере всё работало - например, из-за output_buffering, который консолидирует выводимые данные порциями определённого размера и разрешает устанавливать заголовки, если фактического вывода в браузер ещё не произошло к тому моменту.
Но это только догадки, для более точной информации - для начала ознакомьтесь с логами ошибок.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы