Hrm, thú vị. Tôi không thể tái tạo điều này:
[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
(loại bỏ các tiêu đề không liên quan)
Như đã đề cập ở trên, FilesMatch
khớp với các đường dẫn hệ thống tập tin , không phải URI. Là các tài nguyên không phải là các tệp được nén trên hệ thống tệp hoặc chúng được tạo ra một cách nhanh chóng, hoặc được ủy quyền hoặc được chuyển hướng hoặc một cái gì khác phá vỡ ánh xạ hệ thống URI trực tiếp đến tệp? Thay vào đó, bạn có thể thử sử dụng LocationMatch , đây có thể là một lựa chọn tốt hơn nếu bất kỳ phần nào trong ứng dụng của bạn không phải là tệp tĩnh.
<IfModule mod_deflate.c>
<LocationMatch "\.(css|js|x?html?|php)$">
SetOutputFilter DEFLATE
</LocationMatch>
</IfModule>