mod_deflate — похоже, не удается установить заголовок content-encoding

#apache #http #mod-deflate

#apache #http #mod-deflate

Вопрос:

Я пытаюсь настроить mod_deflate для доставки сжатого содержимого css / js / html, но мне трудно заставить apache правильно отправлять заголовок ‘content-encoding’.

Я попробовал следующее, размещенное в моем файле .htaccess в корневом каталоге web:

AddOutputFilterByType ВЫКАЧАТЬ текст / html-текст / обычный текст / xml-приложение / x-javascript-приложение / javascript text / javascript text / css-приложение / xml

но, проверяя заголовки с помощью firebug, похоже, что это не работает, хотя это работает в моей локальной копии MAMP.

Есть идеи?

Ответ №1:

Какую версию Apache вы используете на своем сервере доставки? Я считаю, что AddOutputFilterByType это устарело в версиях> 2.1. Тем не менее, вы все еще можете выполнить это, всего за несколько строк:

 SetOutputFilter DEFLATE

SetEnvIf Request_URI "^" no-gzip
SetEnvIf Request_URI .(?:css|js|html)$ !no-gzip
  

DEFLATE Фильтр имеет встроенную проверку no-gzip переменной среды. Итак, это включает DEFLATE фильтр, затем отключает его для всего, затем снова включает для css|js|html файлов, отключив no-gzip фильтр для этих запросов.

Надеюсь, это поможет.