Drupal 7では、gzip圧縮を有効/無効にできますか?この機能用のモジュールはありますか?
個人的に、私はDrupalが出力圧縮を処理する方法が好きではありません。これはDrupalの外部で処理します。
Drupalサイトで、私は追加します
$conf['page_compression'] = FALSE;
$conf['css_gzip_compression'] = FALSE;
$conf['js_gzip_compression'] = FALSE;
これを無効にしたことを示すために、settings.php、およびカスタムモジュールにこれを追加します。
/**
* Implements hook_form_FORM_ID_alter().
*/
function MYMODULE_form_system_performance_settings_alter(&$form, $form_state) {
$form['bandwidth_optimization']['page_compression']['#default_value'] = 0;
$form['bandwidth_optimization']['page_compression']['#disabled'] = TRUE;
$form['bandwidth_optimization']['page_compression']['#description'] = t('Handled by Apache.');
}
これは、偶発的な二重出力圧縮を防ぐためでもあります。症状について知らないと診断が非常に困難になる可能性があります。
次に、私のApache設定で、
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# HTML, TXT, CSS, JavaScript, JSON, XML, HTC:
<IfModule filter_module>
FilterDeclare COMPRESS
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/html
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/css
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/plain
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $text/x-component
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/javascript
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/json
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/xhtml+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/rss+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/atom+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/vnd.ms-fontobject
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/svg+xml
FilterProvider COMPRESS DEFLATE resp=Content-Type $image/x-icon
FilterProvider COMPRESS DEFLATE resp=Content-Type $application/x-font-ttf
FilterProvider COMPRESS DEFLATE resp=Content-Type $font/opentype
FilterChain COMPRESS
FilterProtocol COMPRESS DEFLATE change=yes;byteranges=no
</IfModule>
<IfModule !mod_filter.c>
# Legacy versions of Apache
AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
AddOutputFilterByType DEFLATE application/xhtml+xml application/rss+xml application/atom+xml
AddOutputFilterByType DEFLATE image/x-icon image/svg+xml application/vnd.ms-fontobject application/x-font-ttf font/opentype
</IfModule>
</IfModule>
これにより、ApacheはMIMEタイプごとに出力圧縮を行い、すべてのテキストベースの出力が確実に圧縮されるようにします。これは、HTML5ボイラープレートプロジェクトの古いバージョンの.htaccessファイルから改作されたもので、現在は 別のプロジェクト にあります。また、キャッシュ制御のためのディレクティブなども追加します。これらすべてを個別のファイルに保存し、それを仮想ホストにInclude
します。
これの欠点は、サーバーが各要求を圧縮することですが、私のサイトとクライアントにはうまく機能します。