Acontece que não havia nada de errado com o que eu tinha. A primeira linha da tag de localização era:
SetOutputFilter DEFLATE
Depois de remover isso, tudo funcionou corretamente.
Preciso evitar que objetos PDF sejam compactados. Realmente, isso só precisa acontecer se o pedido for do navegador Mozilla (mas como não consigo obter algo aparentemente tão simples como no-gzip para application / pdf, acho mais sensato começar por lá). Olhando para a documentação do apache no mod_filter, eu tenho o seguinte:
<Location />
FilterDeclare gzipDeflate CONTENT_SET
FilterDeclare gzipInflate CONTENT_SET
FilterProvider gzipDeflate deflate req=User-Agent $Mozilla/
FilterProvider gzipInflate inflate resp=Content-Type $application/
FilterChain +gzipDeflate +gzipInflate
</Location>
Do meu teste, o filtro gzipDeflate está fazendo seu trabalho e todas as páginas sem o tipo de conteúdo começando com o aplicativo estão sendo zipadas. Mas o gzipInflate não parece estar funcionando. Eu inspecionei a resposta no Firebug e verifiquei que o Content-Type que está sendo enviado é application / pdf. Eu vou em frente e faço uma pergunta potencialmente idiota:
O cabeçalho Content-Type da resposta em sua íntegra, leia "application / pdf; charset = Windows-1252". Isso faz algum tipo de diferença ou é $ aplicativo / presumivelmente suficiente para pegar isso?
Qualquer ajuda é muito apreciada.
Em outro ponto, a URL que retorna o objeto pdf não possui a extensão .pdf. O pdf em si é armazenado em um banco de dados Oracle como um blob e anexado à página quando apropriado (todos os URLs no sistema usam a mesma linha de base). Isso foi parte de uma pergunta original de um membro útil do stackoverflow que me indicou o mod_filter e sugeriu que eu colocasse a questão aqui.
Tags gzip apache-2.2 mod-filter