So das ganze klappt prima. Ich habe es mal in ein einfaches Plugin gepackt, was natürlich noch gut erweiterbar ist.
Also erst folgendes in die .htaccess:
# BEGIN Gzip Compression
AddEncoding gzip .gz
<filesmatch "\.js\.gz$">
AddType "text/javascript" .gz
</filesmatch>
<filesmatch "\.css\.gz$">
AddType "text/css" .gz
</filesmatch>
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} \.(js|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
</ifmodule>
# END Gzip Compression
Alles anzeigen
Quelle: http://www.tfonfara.de/javascript-und…primieren.xhtml
Und mit dem Plugin dann die Stylesheet-Datei packen.
<?php
/*
Plugin Name: Manually Gzip Program
Description: Gzips and minify the Stylesheet-File
Version: 0.0.1
Author: Comment from Roger G. http://www.tfonfara.de/javascript-und-css-mit-gzip-komprimieren.xhtml extended as Plugin by g3h
*/
function manually_gzipper_option_page() {
?>
<!-- Optionen im Adminbereich -->
<div class="wrap">
<h2>Manually Gzip Program</h2>
</br>
<form method="post" action="<?=$location ?>">
<input name="gz_it" type="submit" value="Minimize and Gzip the style.css" /> <!-- Button -->
</form>
</div>
<?php
}
function minify($buffer) {
//Kommentare entfernen
$buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
//Entferne: Tabs, Spaces, neue Zeilen, etc.
$buffer = str_replace(array("\r\n", "\r", "\n", "\t", ' ', ' ', ' '), '', $buffer);
//Unwichtigen Freiraum entfernen
$buffer = str_replace('{ ', '{', $buffer);
$buffer = str_replace(' }', '}', $buffer);
$buffer = str_replace('; ', ';', $buffer);
$buffer = str_replace(', ', ',', $buffer);
$buffer = str_replace(' {', '{', $buffer);
$buffer = str_replace('} ', '}', $buffer);
$buffer = str_replace(': ', ':', $buffer);
$buffer = str_replace(' ,', ',', $buffer);
$buffer = str_replace(' ;', ';', $buffer);
return $buffer;
}
if ( isset($_POST['gz_it']) ) { // Action wenn Button gedrückt wird
$dateiname = get_stylesheet_directory() . '/style.css';
$dateisize = filesize($dateiname);
$datei = fopen($dateiname, "r");
//Datei-Inhalt lesen und minimieren
$dateiinhalt = fread($datei, $dateisize);
$min_code = minify($dateiinhalt);
//Minifizierte Datei zu einem Gzip-Archiv komprimieren und speichern
$gz = gzopen(get_stylesheet_directory() . '/style.css.gz','w');
gzwrite($gz, $min_code);
gzclose($gz);
fclose($datei);
}
// Adminmenu Optionen erweitern
function manually_gzipper_add_menu() {
add_options_page( 'Manually Gzipper', 'Manually Gzipper', 9, __FILE__, 'manually_gzipper_option_page' );
}
// Registrieren der WordPress-Hooks
add_action( 'admin_menu', 'manually_gzipper_add_menu' );
?>
Alles anzeigen
Das ganze kann man sich dann noch für Javascript-Dateien erweitern.
Insgesamt kommt man so als 1&1 Nutzer doch zu einer ganz annehmbaren Lösung zum komprimieren seiner CSS bzw. JS-Dateien.
Nach jeder Änderung an der Datei(-en) kann man es dann mit einem Buttonklick neu packen.
Noch kompfortabler wäre es natürlich, es im Editor von Wordpress einzubauen, so dass bei jeder Änderung das ganze neu gepackt wird.
Meine CSS-Datei konnte ich mit dem vorgehen immerhin auf 70% der ursprünglichen Größe verkleinern.
MfG