Хм, интересно. Я не могу воспроизвести это:
[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
(несвязанные заголовки удалены)
Как упоминалось выше, FilesMatch
соответствует пути файловой системы , а не URI. Являются ли ресурсы, которые не являются сжатыми файлами, в файловой системе или они генерируются на лету, или проксируются, или перенаправляются, или что-то еще, что нарушает прямое сопоставление URI-файловой системы? Вместо этого вы можете попробовать использовать LocationMatch , который, в любом случае, лучше подойдет, если какая-либо часть вашего приложения не является статическим файлом.
<IfModule mod_deflate.c>
<LocationMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</LocationMatch>
</IfModule>