使用 IIS 禁用单个 php 文件的 Gzip 压缩

Posted

技术标签:

【中文标题】使用 IIS 禁用单个 php 文件的 Gzip 压缩【英文标题】:Disable Gzip compression for single php file with IIS 【发布时间】:2011-07-11 17:23:28 【问题描述】:

我有一个在 Internet 上似乎不太常见的配置(带有 IIS 的 php),因此到目前为止我还没有找到解决我的问题的方法。

基本上当我在我的 php 页面上发送手动 404 标头时:

header('HTTP/1.0 404 Not Found');

问题是我总是遇到编码错误,我确定这与启用 gzip 有关。

当我使用 --compressed 卷曲时,我得到:

HTTP/1.1 404 Not Found
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 3560
Content-Type: text/html
Content-Encoding: gzip
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Vary: Accept-Encoding
Server: Microsoft-IIS/6.0
Set-Cookie: PHPSESSID=b0ueqhtc3o4p7m2luqss170fr3; path=/
Date: Mon, 11 Jul 2011 16:15:40 GMT

curl: (61) Error while processing content unencoding: invalid code lengths set

是否可以仅针对这一页禁用压缩?还是我缺少其他解决方案?我不想为整个网站禁用压缩。

【问题讨论】:

【参考方案1】:

这很简单,只需像这样使用ini集合:

<?php 
    if(ini_get('zlib.output_compression')) 
        ini_set('zlib.output_compression', 'Off'); 
    
    header('HTTP/1.0 404 Not Found');
?>

就这么简单。

【讨论】:

我的英雄!我看到一堆东西说 ini_set 不适用于该设置,我想我只是相信他们没有实际尝试...... NP 我很高兴它对你有用,就像输出压缩一样,在 windows / php 环境中你会发现很多东西。适用于 1000 种其他设置(例如您的设置,但不适用于您的设置)的东西,反之亦然,您只需要反复试验即可。 Windows IIS 和 PHP 之间实际上有数千种配置,它们甚至可以禁用/启用最基本的功能,让你发疯。

以上是关于使用 IIS 禁用单个 php 文件的 Gzip 压缩的主要内容,如果未能解决你的问题,请参考以下文章

在 IIS 8 和 Windows 8 中设置 gzip

IIS开启Gzip压缩

IIS的Gzip压缩功能

IIS 7完全禁用缓存

Wordpress开启GZIP功能的多个方法

php 禁用gzip,minify,缓存,性能,正常运行时间,smush,gravatar,特定页面上的页面缓存等模块