如何从httpd-deflate.conf中不存在的图像中删除gzip编码?

时间:2017-05-02 10:50:09

标签: apache .htaccess nginx gzip mod-deflate

此刻我有什么。

在位置部分的httpd-deflate.conf中:

SetEnvIfNoCase Request_URI \
\\.(?:gif|jpe?g|jpg|png|rar|zip|exe|flv|swf|mov|wma|mp3|mp4|avi|mp?g)$ no-gzip dont-vary

在.htaccess中:

Options +FollowSymlinks

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} !^/index\.php$ [NC]

RewriteRule ^(.+)$ /index.php?_route_=$1 [L,QSA]

通过这些设置,服务器上实际存在的图像将根据需要进行处理 - 无需gzip编码,也无需使用"内容编码:gzip"服务器响应中的标头。

但不存在的图像在index.php文件中处理。 http://example.com/nonexistent-path/non-existent-image.jpg 回复机构:

Cache-Control: max-age=84148768

Connection: keep-alive

Content-Encoding: gzip

Content-Length: 49860

Content-Type: image/jpeg - ((I set it in php manually after image generation before output))

Date: Mon, 01 May 2017 22:04:48 GMT

Expires: Tue, 31 Dec 2019 20:44:16 GMT

Last-Modified: Thu, 17 Nov 2016 14:51:10 GMT

Server: nginx

Strict-Transport-Security: max-age=2592000

Vary: Accept-Encoding

X-XSS-Protection: 1; mode=block

x-content-type-options nosniff

如您所见,这个不存在的图像被处理为文档,而不是.jpg图像。

在服务器上我有Apache和nginx代理,据我所知。我应该在httpd-deflate.conf或任何其他地方粘贴什么来删除不存在的图像的gzip编码并删除"内容编码:gzip"在服务器响应?

谢谢。

1 个答案:

答案 0 :(得分:0)

使用

apache_setenv( 'no-gzip', '1' );
输出前在PHP脚本中