gelöschter Benutzer

GZIP-Komrimierung per .htaccess

am 04.01.2010, 17:17 Uhr eröffnete folgenden Thread
OnPage Optimierung    25675 mal gelesen    74 Antwort(en).

Habe mir heute mal die Zeit genommen alle Daten auf meinem Server zu komprimieren.


GZIP-Komprimierung über Konfigurationsdatei (.htaccess) aktivieren:

In die .htaccess folgenden Code einkopieren:
##
# Compress .js and .css files
##
AddEncoding gzip .gz
<FilesMatch ".js.gz$">
AddType "text/javascript" .gz
</FilesMatch>
<FilesMatch ".css.gz$">
AddType "text/css" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} .(js|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]

Alle css und scripte mit dem Programm 7zip komprimieren:

7-zip.de



Alle komprimierten Dateien, zusätzlich zu den unkomprimierten, auf den Webspace, in den jeweiligen Ordner speichern.

Prüfen ob es funktioniert könnt ihr zum Beispiel hier:

floern.com/tools/trafficscanner




Gruß,
Claudio.


georg123
Avatar georg123
Diplomökonom (Pensionär)
Content Halbgott (569 Beiträge)
am 04.01.2010, 17:47 Uhr schrieb georg123

Passe schrieb:

Habe mir heute mal die Zeit genommen alle Daten auf meinem Server zu komprimieren.
GZIP-Komprimierung über Konfigurationsdatei (.htaccess) aktivieren:
In die .htaccess folgenden Code einkopieren:

##
# Compress .js and .css files
##
AddEncoding gzip .gz
<FilesMatch ".js.gz$">
AddType "text/javascript" .gz
</FilesMatch>
<FilesMatch ".css.gz$">
AddType "text/css" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} .(js|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]

Alle css und scripte mit dem Programm 7zip komprimieren:

7-zip.de



Alle komprimierten Dateien, zusätzlich zu den unkomprimierten, auf den Webspace, in den jeweiligen Ordner speichern.

Prüfen ob es funktioniert könnt ihr zum Beispiel hier:

floern.com/tools/trafficscanner




Gruß,
Claudio.



Hallo Claudio, bin schwer interessiert!:thumbup:
page speed meldet bei mir, daß ich meine (einzige) css-Datei und die index html. komprimieren sollte.
Wenn ich Dich richtig verstanden habe: Zuerst die beiden Dateien auf .gzip-Format offline komprimieren, hochladen. Neue Dateiendung: *.gzip???
Bestehende beide Dateien stehen lassen.
dann .htaccess nach Deinem Rezept ergänzen:

##
# Komprimieren index.html und css-Datei
##
AddEncoding gzip .gz
<FilesMatch "index.html.gz$">
AddType "text/javascript" .gz
</FilesMatch>
<FilesMatch ".css.gz$">
AddType "text/css" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} .(index.html|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
##
#Ende Kompressionsbefehle
##

Und das geht ohne mit dem Herrn Webhoster zu sprechen???H
D`accord? Fritz



http://georg-hh.freimaurerei.de

Freiheit-Gleichheit-Brüderlichkeit, Toleranz und Humanität:
Dafür stehen und danach streben Freimaurer

Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 04.01.2010, 17:55 Uhr schrieb Raptor

georg123 schrieb:

Wenn ich Dich richtig verstanden habe: Zuerst die beiden Dateien auf .gzip-Format offline komprimieren, hochladen.


Korrekt.

georg123 schrieb:

Neue Dateiendung: *.gzip???


Nein, nur .gz

georg123 schrieb:

<FilesMatch "index.html.gz$">
AddType "text/javascript" .gz
</FilesMatch>


Das ist nicht ganz korrekt.
Müsste heissen:
<FilesMatch "index.html.gz$">
AddType "text/html" .gz
</FilesMatch>


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel


gelöschter Benutzer
am 04.01.2010, 18:00 Uhr schrieb

georg123 schrieb:

Neue Dateiendung: *.gzip???


Bei mir ist es die Dateiendung .gz
Ich habe alle Skripte und Stylesheets vom Server heruntergeladen und mit 7zip eine komprimierte Fassung ersellt und die dann zu der bereits bestehenden unkomprimierten Fassung hochgeladen.

Beispiel:
Vorher: mootools.js
Nachher: mootools.js.gz
Beide Dateien sollten im selben Verzeichnis wie vorher stehen

georg123 schrieb:

dann .htaccess nach Deinem Rezept ergänzen:

##
# Komprimieren index.html und css-Datei
##
AddEncoding gzip .gz
<FilesMatch "index.html.gz$">
AddType "text/html" .gz
</FilesMatch>
<FilesMatch ".css.gz$">
AddType "text/css" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} .(index.html|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
##
#Ende Kompressionsbefehle
##


Mit .html habe ich es noch nicht ausprobiert - müsste aber funktionieren.

georg123 schrieb:

Und das geht ohne mit dem Herrn Webhoster zu sprechen???H
D`accord? Fritz


Ja, wenn er gzip-Komprimierung unterstützt dann ja.
Bei 1&1 wird es unterstützt!

Gruß,
Claudio.



gelöschter Benutzer
am 04.01.2010, 18:16 Uhr schrieb

Via Script lässt sich das auch lösen.
Nähere Informationen findet man hier:

www.uwserver.de



Gruß,
Claudio.


Bazzel
Avatar Bazzel
Content Meister (251 Beiträge)
am 04.01.2010, 20:49 Uhr schrieb Bazzel

Alternativ falls die Module beim Webhoster aktiv sind kann man auch alles vom Server erledigen lassen. Bei mir sind alle aktiv
Hier mal meine htaccess die ich als Beispiel so im www gefunden habe. Leider keine ahnung mehr woher (hab ewig gesucht bis ich dies fand) deshalb auch keine Quellen-angabe.

# BEGIN Compress files
<IfModule mod_deflate.c>
<FilesMatch ".(css|js|xhtml|html|htm|php)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
# END Compress files

# BEGIN Expire headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 4592000 seconds"
ExpiresByType image/jpeg "access plus 4592000 seconds"
ExpiresByType image/jpg "access plus 4592000 seconds"
ExpiresByType image/png "access plus 4592000 seconds"
ExpiresByType image/gif "access plus 4592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 2592000 seconds"
ExpiresByType text/javascript "access plus 2592000 seconds"
ExpiresByType application/x-javascript "access plus 2592000 seconds"
ExpiresByType text/html "access plus 6000 seconds"
ExpiresByType application/xhtml+xml "access plus 6000 seconds"
</IfModule>
# END Expire headers

# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpeg|jpg|png|gif|swf)$">
Header set Cache-Control "max-age=4592000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\\.(xhtml|html|htm|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
</IfModule>
# END Cache-Control Headers

# BEGIN Turn ETags Off
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
# END Turn ETags Off

# BEGIN Remove Last-Modified Header
<IfModule mod_headers.c>
Header unset Last-Modified
</IfModule>


Rock'n'Roll Club Lörrach
Deutsche Meisterschaft 2009 Rock'n'Roll
   

georg123
Avatar georg123
Diplomökonom (Pensionär)
Content Halbgott (569 Beiträge)
am 05.01.2010, 00:12 Uhr schrieb georg123

Bazzel schrieb:

Alternativ falls die Module beim Webhoster aktiv sind kann man auch alles vom Server erledigen lassen. Bei mir sind alle aktiv
Hier mal meine htaccess die ich als Beispiel so im www gefunden habe. Leider keine ahnung mehr woher (hab ewig gesucht bis ich dies fand) deshalb auch keine Quellen-angabe.

# BEGIN Compress files
<IfModule mod_deflate.c>
<FilesMatch ".(css|js|xhtml|html|htm|php)$">
SetOutputFilter DEFLATE
</FilesMatch>
</IfModule>
# END Compress files

# BEGIN Expire headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType image/x-icon "access plus 4592000 seconds"
ExpiresByType image/jpeg "access plus 4592000 seconds"
ExpiresByType image/jpg "access plus 4592000 seconds"
ExpiresByType image/png "access plus 4592000 seconds"
ExpiresByType image/gif "access plus 4592000 seconds"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 2592000 seconds"
ExpiresByType text/javascript "access plus 2592000 seconds"
ExpiresByType application/x-javascript "access plus 2592000 seconds"
ExpiresByType text/html "access plus 6000 seconds"
ExpiresByType application/xhtml+xml "access plus 6000 seconds"
</IfModule>
# END Expire headers

# BEGIN Cache-Control Headers
<IfModule mod_headers.c>
<FilesMatch "\\.(ico|jpeg|jpg|png|gif|swf)$">
Header set Cache-Control "max-age=4592000, public"
</FilesMatch>
<FilesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</FilesMatch>
<FilesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</FilesMatch>
<FilesMatch "\\.(xhtml|html|htm|php)$">
Header set Cache-Control "max-age=600, private, must-revalidate"
</FilesMatch>
</IfModule>
# END Cache-Control Headers

# BEGIN Turn ETags Off
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
FileETag None
# END Turn ETags Off

# BEGIN Remove Last-Modified Header
<IfModule mod_headers.c>
Header unset Last-Modified
</IfModule>




Was hindert uns Germanen, wenigstens die Kommentare einer .htaccess auf Deutsch zu schreiben? Damit oute ich mich auch als gelegentlicher Benutzer des Flughafens Hamburg- und ärgere mich, dass die S-Bahn zum "Airport" fährt. Fritz


http://georg-hh.freimaurerei.de

Freiheit-Gleichheit-Brüderlichkeit, Toleranz und Humanität:
Dafür stehen und danach streben Freimaurer

joerg
Avatar joerg
Fachinformatiker Anwendungsentwicklung
Content Gott (1941 Beiträge)
am 05.01.2010, 10:41 Uhr schrieb joerg

Hallo

@Fritz Gar nichts aber die Kommentare kann jeder so verfassen wie er mag!

Zumindest läuft das Skript auch bei mir ! Auch wenn ich das komplette Verständnis dafür noch nicht besitze!

Angepasst habe ich es nur in der Form das ich
ExpiresByType text/html "access plus 6000 seconds" auf 0 gesetzt habe bei den Domains wo ich eine Zufallfunktion in php verwende!

Gruß
Jörg


Zufällige Umleitung zu der Startseite einer meiner Domains
Meine ungewöhnlichen Tools

Bazzel
Avatar Bazzel
Content Meister (251 Beiträge)
am 05.01.2010, 11:39 Uhr schrieb Bazzel

So zuerst zum Thema.

@ Jörg Um Fehler zu vermeiden wird für jedes Modul geprüft ob es vorhanden ist. <IfModule mod_deflate.c> Somit wird kein Fehler durch ein nicht vorhandenes Modul erzeugt.
Ob nun wirklich Komprimiert wird (die Module Arbeiten) muss man also erst überprüfen.

@ Fritz Ich war ja schon am zweifeln ob ich den riesigen Absatz überhaupt einstellen soll oder lieber doch Extern verlinken muss. Weil so ein großer abschnitt sich doch stören auswirkt.
In anderen Foren gibt es spezielle Code-Boxen die sich nach bedarf vergrößern lassen. Wäre eine anregung für Mathias.
Somit halte ich eine komplette Wiederholung des Beitrags zumal er direkt darüber steht für sinnlos.

Des weiteren noch ein Kurzes Zitat von dir in Sachen Themenrelevanz aus dem "Brief an 1&1 - Herrn Davis".

georg123 schrieb:

...kurz vorm Schlafengehen stimme ich Gerard zu. Außerdem: Ich begreife die Postings nicht die Bohne, sie belasten nach meiner Meinung nur die Forums-Datenbank. Nutzen?????
Fritz



Viele Grüße Joachim
 


Rock'n'Roll Club Lörrach
Deutsche Meisterschaft 2009 Rock'n'Roll
   

georg123
Avatar georg123
Diplomökonom (Pensionär)
Content Halbgott (569 Beiträge)
am 05.01.2010, 11:40 Uhr schrieb georg123

Raptor schrieb:

georg123 schrieb:

Wenn ich Dich richtig verstanden habe: Zuerst die beiden Dateien auf .gzip-Format offline komprimieren, hochladen.


Korrekt.

georg123 schrieb:

Neue Dateiendung: *.gzip???


Nein, nur .gz

georg123 schrieb:

<FilesMatch "index.html.gz$">
AddType "text/javascript" .gz
</FilesMatch>


Das ist nicht ganz korrekt.
Müsste heissen:
<FilesMatch "index.html.gz$">
AddType "text/html" .gz
</FilesMatch>



Hallo Flo, danke- heute hab ichs versucht- gescheitert.

OHNE die Kompression hatte PageSpeed gemeldet: Score 83/100
rote Warnung leverage browser caching
rote Warnung enable compression
gelbes Dreieck minify CSS
gelbes Dreieck remove unused CSS

Im Hauptverzeichnis liegt inzwischen die mit 7Zip problemlos komprimierte index.html mit Endung .gz, zusätzlich zur index.html.
im Unterverzeichnis (!!!! Fehlerquelle für Befehl in .htaccess????) /css liegt die normale, einzige *.css-Datei, dazu die Kompression mit .gz-Endung

Die .htaccess ist wie folgt erweitert, ich denke, Deine Korrekturen sind erfasst:
##
# Komprimieren index.html und css-Datei, Stand 5.1.2010
##
AddEncoding gzip .gz
<FilesMatch "index.html.gz$">
AddType "text/html" .gz
</FilesMatch>
<FilesMatch ".css.gz$">
AddType "text/css" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} .(index.html|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]
##
#Ende Kompressionsbefehle
##

Nach hochladen .htaccess und der beiden .gz-Dateien startet die Site problemlos-aber PageSpeed meldet jetzt Score 70/100 und
rote Warnung leverage browser caching
rote Warnung enable compression
rote Warnung minimize DNS lookups
rote Warnung minimize redirects
gelbes Dreieck minify CSS
gelbes Dreieck remove unused CSS

also heftige Verschlechterung.
Inzwischen ist die alte .htaccess wieder aktiv, kein Schaden.

Fragen: Könnte der Befehl für meine im UV /CSS liegende css-Datei ursächlich sein? Ich zweifle, weil PageSpeed ja mit Hinweis 2 "enable compression" fordert
Könnte mein Server das Verfahren nicht unterstützen? Kommunikation mit meinem Freimaurer-Provider nicht einfach...
Danke fürs Nach- bzw. mitdenken. Gruss Fritz



http://georg-hh.freimaurerei.de

Freiheit-Gleichheit-Brüderlichkeit, Toleranz und Humanität:
Dafür stehen und danach streben Freimaurer

Raptor
Avatar Raptor
IT-Student
Content Gott (1013 Beiträge)
am 05.01.2010, 14:08 Uhr schrieb Raptor

Versuche mal die .htaccess in das Unterverzeichnis zu kopieren, dafür löschst du die Anweisungen bzgl der CSS-Datei in der .htaccess des Hauptverzeichnisses.

Da ist mir doch gleich noch mal \'nen Fehler aufgefallen:
RewriteCond %{REQUEST_FILENAME} \\.(index.html|css)$
müsste heissen:
RewriteCond %{REQUEST_FILENAME} \\.(html|css)$

Warum schreibst du eigentlich überall noch das "index" zur HTML-Datei hin? Wenn du das weg lässt, macht das womöglich weniger Probleme.

Also, das ganze nochmal:
die .htaccess für das Hauptverzeichnis:
AddEncoding gzip .gz
<FilesMatch "\\.html\\.gz$">
AddType "text/html" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} \\.(html|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]


die .htaccess für das CSS-Verzeichnis:
AddEncoding gzip .gz
<FilesMatch "\\.css\\.gz$">
AddType "text/css" .gz
</FilesMatch>
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME} \\.(html|css)$
RewriteCond %{REQUEST_FILENAME}.gz -f
RewriteRule ^(.*)$ $1.gz [QSA,L]


Versuch\'s mal so.


Meine Developer-Website mit den Web-Entwickler-Tools.
Meine Web-Entwicklungs-Dienstleistungen

[url="http://www.seitenreport.de/forum/beitraege/seitenreport_verlosungen/wichtig_neue_regel



« zurück zu: OnPage Optimierung

Das Seitenreport Forum hat aktuell 5275 Themen und 36110 Beiträge.
Insgesamt sind 48360 Mitglieder registriert.