Die richtigen .htaccess Angaben für Cachify

Das ehemals von Sergej Müller (jetzt pluginkollektiv) entwickelte WordPress Plugin Cachify ist für mich immer noch erste Wahl, wenn ich eine WordPress Multisite Beine machen will.
So einfach das im Betrieb auch ist, muss man hin und wieder selbst Hand anlegen, wenn es richtig laufen soll.
Ich zeige euch hier, wie man das am besten macht.

In den Grundeinstellungen des Plugins dürft ihr wählen, ob der Cache über die Datenbank oder HDD (sprich Festplatte) erzeugt wird. Ich wähle immer HDD, was bedeutet, dass Cachify statische Webseiten (ja, so richtig mit .html) erzeugt und der Apache Webserver diese bei Anfrage ausliefert. Ides allerdings funktioniert nur, wenn ihr bei den WordPress Permalink-Einstellungen im Backend die sprechenden URLs ausgewählt habt.
Damit der Apache weiß, wo er die statischen Webseiten findet, schaut er in seiner Konfigurationsdatei .htaccess nach. Dort fügt Cachify einen Block mit Anweisungen ein, der das alles regelt. Das sollte eigentlich beim Abspeichern der Einstellungen durch das Plugin erfolgen, aber bei restriktiven Dateirechten oder wenn PHP generell im FastCGI Modus ausgeführt wird, geht das nicht. Dann muss man selbst Hand anlegen.
Aber keine Sorge, das geht sehr einfach und tut nicht weh.

Wenn ihr in den Backend-Einstellungen für Permalinks die sprechenden URLS gewählt und abgespeichert habt, müsste WordPress bereits eine .htaccess im Root-Ordner angelegt haben. Ladet die über einen FTP-Client wie Filezilla herunter und bearbeitet die in einem Texteditor wie Notepad (nein, MS Word ist kein Texteditor!).
Fügt den folgenden Codeschnipsel ganz an den Anfang der Datei. Auf jeden Fall noch vor dem WordPress Bereich, der meistens durch die Kommentare #BEGINN WORDPRESS und # END WORDPRESS gekennzeichnet ist

# BEGINN CACHIFY

    # ENGINE ON
    RewriteEngine On

    # GZIP FILE
    
        RewriteCond %{REQUEST_URI} /$
        RewriteCond %{REQUEST_URI} !^/wp-admin/.*
        RewriteCond %{REQUEST_METHOD} !=POST
        RewriteCond %{QUERY_STRING} =""
        RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
        RewriteCond %{HTTP:Accept-Encoding} gzip
        RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html.gz -f
        RewriteRule ^(.*) /wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html.gz [L]

        AddType text/html .gz
        AddEncoding gzip .gz
    

    # HTML FILE
    RewriteCond %{REQUEST_URI} /$
    RewriteCond %{REQUEST_URI} !^/wp-admin/.*
    RewriteCond %{REQUEST_METHOD} !=POST
    RewriteCond %{QUERY_STRING} =""
    RewriteCond %{HTTP_COOKIE} !(wp-postpass|wordpress_logged_in|comment_author)_
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html -f
    RewriteRule ^(.*) /wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html [L]

# END CACHIFY

Wenn ihr Kunden bei domainfactory oder auch 1und1 sein solltet, habt ihr noch eine kleine Hürde zu nehmen. Hier funktioniert die Variable {DOCUMENT_ROOT} nämlich nicht, was bedeutet, dass ihr den absoluten Serverpfad zu eurer Webseite selbst herausfinden und hier eintragen müsst. Konkret geht es um diese 2 Zeilen:

RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html.gz -f
RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html -f

Im einfachsten Fall fragt ihr einfach euren Webhoster, wenn ihr etwas abenteuerlustig seid, googled ihr im Netz nach Lösungswegen.
Wenn ihr den absoluten Serverpfad herausgefunden habt, müsst ihr das {DOCUMENT_ROOT} mit diesem ersetzen. Das sähe beispielhaft dann so aus:

RewriteCond /kunden/homepages/0815/d08154711/htdocs/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html.gz -f
RewriteCond /kunden/homepages/0815/d08154711/htdocs/wp-content/cache/cachify/%{HTTP_HOST}%{REQUEST_URI}index.html -f

Dann die ganze .htaccess abspeichern, hochladen und die bestehende ersetzen/überschreiben.
Selbstverständlich sichert ihr die alte .htaccess vorher. Zur Sicherheit.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.