Webserver-Konfiguration des Gambio-Moduls zur Ladezeitoptimierung

In den allermeisten Fällen genügt ein einziger Klick im Gambio-Admin, damit das Ladezeitoptimierungs-Modul die benötigten Direktiven in die .htaccess-Datei schreibt und somit die Auslieferung von Dateien aus dem Cache aktiviert. Nachfolgende Hinweise dienen der manuellen Apache-Konfiguration oder für den Fall, dass Sie Nginx als Webserver einsetzen.

Apache-Konfiguration

Screenshot der Gambio Admin-Oberfläche im Bereich „Webserver-Konfiguration“ des Moduls zur Ladezeitoptimierung: mod_rewrite aktiv, mod_mime aktiv, Cache-Verzeichnis beschreibbar, RewriteRules in .htaccess-Datei vorhanden, Effiziente Cache-Richtlinie: Ja.
Alles geprüft, alles grün

Dieser Abschnitt beschreibt ein Szenario, wonach der Apache-Webserver für die Auslieferung sämtlicher Inhalte zuständig ist, die Direktiven in .htaccess-Dateien jedoch unwirksam sind. Das ist selten der Fall, prinzipiell jedoch sehr ratsam. Die Platzierung der Anweisungen in einer Konfigurationsdatei kombiniert mit der Direktive AllowOverride None spart das Auslesen der .htaccess-Datei bei jedem einzelnen Request und bringt somit weitere Performance-Vorteile.

Das aber nur als Bonus-Tipp am Rande. Wenn Sie die Apache-Konfiguration selbst vornehmen, wissen Sie vermutlich bereits um diesen Tipp zur Performancesteigerung.

RewriteRules

Screenshot der Gambio Admin-Oberfläche: aufgeklappte RewriteRules-Direktiven zwischen # BEGIN Ladezeitoptimierung und # END Ladezeitoptimierung, wie sie das Modul in die .htaccess-Datei schreibt.
Diese Direktiven schreibt das Modul in die .htaccess-Datei

In der Box Webserver-Konfiguration des Gambio-Moduls zur Ladezeitoptimierung finden Sie die Zeile RewriteRules. Ein Klick auf das Auge-Symbol zeigt Ihnen die mod_rewrite-Direktiven, die für das Ausliefern von Dateien aus dem Cache erforderlich sind. Das Modul schreibt diese Direktiven in die .htaccess-Datei im Wurzelverzeichnis der Gambio-Installation. Bei manueller Konfiguration sind sie folglich am Besten in einer <Directory>-Section für ebenjenes Verzeichnis zu platzieren. Das heißt, Sie fügen sie dort ein, wo Sie bereits die Gambio-Direktiven eingefügt haben und zwar vor dem <IfModule mod_rewrite.c>-Block, der Gambios RewriteRules umschließt.

Erscheint in der Box Webserver-Konfiguration statt eines grünen Häkchens die rote Meldung .htaccess-Datei nicht beschreibbar – bei den Zeilen RewriteRules, Effiziente Cache-Richtlinie oder Schnelle & sichere Weiterleitung –, fehlen dem Webserver schlicht die Schreibrechte für die .htaccess-Datei im Wurzelverzeichnis der Gambio-Installation. Alle drei Punkte betreffen Einträge, die das Modul in dieselbe Datei schreibt, ein einziger Rechte-Fix behebt deshalb üblicherweise alle gleichzeitig.

Meist genügt es, die Dateirechte der .htaccess anzupassen: Im FTP-Programm wie FileZilla die Datei mit der rechten Maustaste anklicken und über Dateiberechtigungen bzw. Datei-Attribute auf z.B. 644 setzen (bei manchen Hosting-Konfigurationen auch 664 oder 666 nötig) – alternativ funktioniert das ebenso über den Dateimanager im Kundenmenü des Hosting-Providers. Anschließend im Gambio-Admin auf In .htaccess-Datei schreiben klicken.

Möchten wir die Dateirechte lieber nicht ändern, hilft ersatzweise ein Klick auf das Auge-Symbol neben der jeweiligen Zeile: Es zeigt die einzufügenden RewriteRules im Klartext an, die sich händisch in die .htaccess-Datei einfügen lassen – siehe die Erläuterungen oben.

Cache-Verzeichnis

Das Ladezeitoptimierungs-Modul erstellt eine zweite .htaccess-Datei, deren Inhalt nicht im Gambio-Admin ersichtlich ist. Diese liegt im Verzeichnis /cache/wmlo/hostname (z.B. /cache/wmlo/ihrshop.de) und erfüllt drei Aufgaben:

  1. RewriteEngine für das Cache-Verzeichnis ausschalten
  2. Zugriff auf die Dateien im Cache gestatten
  3. HTTP-Header für gzip-komprimierte Dateien setzen

Haben Sie Ihren Apache so konfiguriert, dass Direktiven in der .htaccess-Datei innerhalb des cache-Verzeichnisses unwirksam sind, so erstellen Sie bitte einen <Directory>-Block für das Verzeichnis /cache/wmlo/hostname. Folgende Direktiven sind darin zu platzieren:

RewriteEngine Off
#For Apache 2.2
<IfModule !mod_authz_core.c>
<IfModule mod_authz_host.c>
Order allow,deny
Allow from all
</IfModule>
</IfModule>
# For Apache 2.4
<IfModule mod_authz_core.c>
<RequireAll>
Require all granted
</RequireAll>
</IfModule>
<IfModule mod_mime.c>
AddType text/html .html_gzip
AddEncoding gzip .html_gzip
</IfModule>

mod_rewrite & mod_mime inaktiv?

Screenshot der Gambio Admin-Oberfläche im Bereich „Webserver-Konfiguration“: mod_rewrite und mod_mime werden fälschlich als inaktiv angezeigt, das Cache-Verzeichnis ist beschreibbar.
Fehlanzeige trotz aktiver Module

Das Modul liest lediglich die von Gambio selbst in der .htaccess-Datei gesetzten Umgebungsvariablen gambio_mod_rewrite_working und gambio_mod_mime_working aus. Es ist durchaus möglich, dass beide Module installiert und aktiviert sind, jedoch nicht für Gambio erkennbar. Bei Strato beispielsweise laufen beide Module und haben dennoch das Prädikat inaktiv.

HTML-Seiten vom Apache, CSS-Dateien von Nginx

Oftmals dynamisch generierte Seiten vom Typ text/html, application/xhtml+xml oder application/xml via Apache, statische Ressourcen wie CSS- oder JavaScript-Dateien via Nginx ausliefern zu lassen, ist eine aus Performancegründen beliebte Option. Das Modul zur Ladezeitoptimierung funktioniert in dieser Umgebung problemlos – bis auf eine Kleinigkeit. Der nachfolgende Hinweis ist für Sie nur von Relevanz, wenn alle diese Bedingungen zutreffen:

  • Sie möchten die Optimierung Google Fonts asynchron laden nutzen
  • Sie haben die Option CSS inline im Head ausgeben im Gambio-Admin unter System-Einstellungen > Kompression deaktiviert
  • Nginx ist für die Auslieferung von CSS-Dateien zuständig

Das Ladezeitoptimierungs-Modul erstellt eine Kopie der Honeygrid-CSS-Datei und entfernt aus dieser die Import-Anweisung für Google-Fonts. Damit nicht die Original-CSS-Datei, sondern die Kopie aus dem cache-Verzeichnis geladen wird, ist für Nginx folgende Rewrite Rule in die Konfiguration einzufügen:

if ($uri ~ "templates\/Honeygrid\/main\.min\.css$"){
set $rule_0 1$rule_0;
}
if ($args ~ "bust=(\d+)"){
set $rule_0 2$rule_0;
set $bref_0_0 $1;
}
if (-f /var/www/vhosts/ihrshop.de/httpdocs/cache/wmlo/$http_host/css/${bref_0_0}.css){
set $rule_0 3$rule_0;
}
if ($rule_0 = "321"){
rewrite /.* /cache/wmlo/$http_host/css/${bref_0_0}.css last;
}

Übersehen Sie bitte nicht, den exemplarischen Pfad /var/www/vhosts/ihrshop.de/httpdocs dem tatsächlichen Pfad zu Ihrer Gambio-Installation anzupassen.

Gambio läuft vollständig über Nginx

Sie nutzen ausschließlich Nginx als Webserver für Ihren Gambio-Shop? In diesem Fall haben Sie vermutlich bereits die von Gambio verwendeten Apache-Direktiven in Ihre Nginx-Konfiguration übernommen und können mit den unter Apache-Konfiguration genannten Anweisungen ebenso verfahren. Gegebenenfalls haben Sie unter diesen Umständen aber auch gar keinen Bedarf mehr für die Caching-Funktion des Moduls zur Ladezeitoptimierung, sondern möchten ausschließlich die automatische Optimierung verwenden.