Hrm, interessante. Não consigo reproduzir isso:
[root@dev ~]# cat /etc/httpd/conf.d/test.conf
<FilesMatch "\.txt$">
SetOutputFilter DEFLATE
Header set X-Ping "Pong"
</FilesMatch>
[root@dev ~]# GET -SedH 'Accept-Encoding: gzip, deflate' 'http://localhost/test.txt'
GET http://localhost/test.txt --> 200 OK
Content-Encoding: gzip
Content-Length: 2449
X-Ping: Pong
[root@dev ~]# GET -SedH 'Accept-Encoding: gzip, deflate' 'http://localhost/test.txt?foo'
GET http://localhost/test.txt?foo --> 200 OK
Content-Encoding: gzip
Content-Length: 2449
X-Ping: Pong
(cabeçalhos não relacionados removidos)
Como mencionado acima, FilesMatch
corresponde a caminhos do sistema de arquivos , não a URIs. Os recursos que não estão sendo compactados no sistema de arquivos ou são gerados na hora, ou intermediados por proxy, ou redirecionados ou qualquer outra coisa que interrompa o mapeamento direto do URI para o sistema de arquivos? Você poderia tentar usar o LocationMatch , que provavelmente é uma aposta melhor, de qualquer forma, se qualquer parte do seu aplicativo não é um arquivo estático.
<IfModule mod_deflate.c>
<LocationMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</LocationMatch>
</IfModule>