嗯,有趣。我无法重现此内容:
[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>