@vagrand

Почему не получается правильно отдать файл, сжатый при помощи gzencode()?

Есть куча html файлов, полностью статических. Хочу всех их сжать при помощи gzencode() и потом напрямую отдавать пользователю. И вот с прямой отдачей как раз и выходит затык. Прописываю в .htaccess директиву:

Header set Content-Encoding: gzip

В браузере вижу что нужный хидер мне отдается, но декодирование не происходит.

И в том же самое время, вот такой код:

$content = file_get_contents('./test.shtml');
$content = gzencode($content, 9);
header('content-encoding: gzip'); 
echo $content;


абсолютно нормально отдает контент файла. Список хидеров для обоих способов проверял, все идентично.

Тестовый файл кодирую следующим образом:

$content = file_get_contents('./test.shtml');
$content = gzencode($content, 9);
file_put_contents('./test_gz.shtml', $content);


Подскажите в чем может быть дело. Может я не знаю какой-то особенности?
  • Вопрос задан
  • 2976 просмотров
Решения вопроса 1
@vagrand Автор вопроса
В общем я разобрался сам. Нужный мне способ не хотел работать только при расширении shtml, видимо какие-то замутки с SSI.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
stepank
@stepank
apache же сам умеет это делать - httpd.apache.org/docs/2.2/mod/mod_deflate.html. зачем какие-то дополнительные телодвижения?
Ответ написан
7workers
@7workers
Поставить хэдер, еще не значит сжать. Гуглите SetOutputFilter DEFLATE
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы