我正在运行 Apache + PHP,我的网站中使用 gzip 的所有地方(例如 WordPress 中的 CSS)都不再加载,只显示一个黑色问号。我不知道在哪里查找错误。
我的测试脚本是这样的:
<?php
header( 'Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 1209600 ) );
header( 'Content-type: text/css; charset=UTF-8' );
$http_accept_encoding = $_SERVER["HTTP_ACCEPT_ENCODING"];
if ( strpos( $http_accept_encoding, 'x-gzip' ) !== FALSE ) {
$encoding = 'x-gzip';
} else if( strpos($http_accept_encoding,'gzip') !== FALSE ) {
$encoding = 'gzip';
} else {
$encoding = FALSE;
}
if ( $encoding ) {
header( 'Content-Encoding: ' . $encoding );
echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
}
$output = 'Hellooooooooooooooo World';
if ( $encoding ) {
echo gzcompress( $output, 9 );
} else {
echo $output;
}
输出如下:
http://brandonwamboldt.ca/css.php
它也不稳定,有时候可以正确加载,有时候则不行
答案1
我不知道问题到底出在哪里,但我从 PHP 5.4.4 回滚到 PHP 5.4.3,问题不再出现(配置文件相同)。将 PHP 5.4.4 放回去又会导致问题。