Остановить блокировку ETag Apache

Я написал веб-приложение, использующее чужой API, для которого требуются ETag. Я пробовал этот код:

header("ETagbleh: whatever");

Который отлично работает. Однако, когда я установил это:

header("ETag: whatever");

Ничего не произошло. Я слышал, что это может быть Apache, блокирующий отправку ETag, но я не уверен. Я выполнил поиск ETag в своем apache2.conf и не могу найти ничего, что можно было бы раскомментировать/удалить, поэтому я пришел сюда, чтобы спросить.

Итак, как я могу остановить Apache, блокирующий мои заголовки?

Редактировать: я использую Apache 2.2.22, и я предположил, что язык сценариев не имеет значения, учитывая, что PHP 5.4.4, который я использую, может установить любой другой заголовок.


person Alfo    schedule 13.09.2012    source источник
comment
можете ли вы сослаться на то, что Apache делает это, никогда не собирайтесь, и я использую API, которые используют ETag.   -  person    schedule 14.09.2012
comment
Вы не говорите, какой apache 1.3,2.0,2.2,2.4 и какая технология сценариев используется (может быть, PHP?). Обычно для сценариев apache ничего не пытается сделать, он обычно выдает их только для статических файлов, а .htaccess может включать FileETag None в соответствии с https://httpd.apache.org/docs/2.2/mod/core..html#fileetag   -  person Darryl Miles    schedule 14.09.2012


Ответы (1)


У меня была такая же проблема.

Очень популярным способом удаления ETags в Apache2 является добавление следующей конфигурации:

Header unset ETag
FileETag None

Удалите первую строку конфигурации, если вы найдете ее в своей конфигурации.

Немного сложнее найти mod_include, вызывающий проблему. По умолчанию этот модуль удаляет ETag-Header. Но вы можете разрешить это в настройках. Итак, добавьте что-то вроде этого:

 <IfModule mod_include.c>
     SSIETag on
 </IfModule>

См. здесь для получения дополнительной информации.

person Trendfischer    schedule 09.09.2015