うーん、面白い。これは再現できません。
[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
(無関係なヘッダーは削除されました)
上記のように、URIではなくファイルシステムのパスにFilesMatch
一致します。ファイルシステム上の圧縮ファイルではないリソース、またはオンザフライで生成されたリソース、プロキシされたリソース、リダイレクトされたリソース、または直接のURIからファイルシステムへのマッピングを壊すその他のリソースですか?代わりにLocationMatchを使用してみることもできます。これは、アプリの一部が静的ファイルでない場合は、とにかくおそらく良い方法です。
<IfModule mod_deflate.c>
<LocationMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</LocationMatch>
</IfModule>