Запретить mod_deflate в zip-файле, обслуживаемом PHP

У меня возникли проблемы с предотвращением включения mod_deflate в этом сценарии:

  1. пользователь запускает CodeIgniter (или любой другой фреймворк, который перенаправляет на index.php)
  2. mod_deflate активен
  3. zip-файл обслуживается контроллером CodeIgniter (заголовки + файл для чтения)

Дело в том, что Apache всегда определяет контент как php , и поэтому что-то вроде , строки ниже не будут работать , как предполагает сервер файл ZIP как файл PHP.

<FilesMatch "\.(xml|txt|html|php)$">
   SetOutputFilter DEFLATE
</FilesMatch>

Любые идеи о том, как я могу отличить Apache от файла HTML или файла ZIP, оба сгенерированы одним и тем же файлом фреймворка index.php .

Править :
журнал apache

[Mon Jun 20 02:14:19 2011] [debug] 
mod_deflate.c(602): [client 192.168.0.5] 
Zlib: Compressed 50870209 to 50878224 : URL /index.php, 
referer: http://demo.dev/

Изменить:
Контроллер CI, обслуживающий zip-архив

header('Content-Type: application/zip');
header('Content-Transfer-Encoding: binary');
header("Content-Length: " . filesize($file_location)); 
header('Content-Disposition: attachment; filename="' . $file_title . '"'); 
readfile($file_location);
8
задан Frankie 20 June 2011 в 01:28
поделиться