WordPress htaccess default – Standard und Einstellungen

Eine der wichtigsten Stellschrauben an einem Webserver ist die .htaccess-Datei. Bei einem Apache Server können Systemvariablen entweder über die php.ini oder oft über die .htaccess-Datei verändert werden.

WordPress htaccess (default)

Auch WordPress arbeitet mit einer .htaccess und steuert in der Standard-Variante das Aussehen der Seitenlinks auf Deiner Webseite. Sie sorgt also für die Umsetzung von sogenannten SEO-URLs. Die .htaccess-Datei findest du im Grundverzeichnis deiner WordPress-Installation. Dort wo auch die wp-config.php und die index.php zu finden ist.

Die Standard .htaccess für WordPress:


# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress
            

WordPress htaccess gelöscht

Hast du Deine .htaccess gelöscht, kannst du dir die WordPress .htaccess hier einfach herunterladen:

Kopiere diese Datei in das Grundverzeichnis des WordPress.

Weitere Einstellungsmöglichkeiten in der .htaccess-Datei

Auch weitere Einstellungen lassen sich in dieser Datei setzen. Voraussetzung ist dabei: dein Hoster unterstützt das. Hier eine Übersicht der wichtigsten Befehle für die .htaccess bei WordPress.

Maximum Execution Time – Die PHP Ausführungszeit

Dieser Wert bestimmt wie lange ein PHP-Script laufen darf, bis es vom Server abgebrochen wird. Eine höhere Execution-Time wird zum Beispiel benötigt, wenn ein Backup generiert wird. Woran erkennst du, dass du eine höhere Laufzeit benötigst? Im Error-Log oder beim Aufruf des Scriptes erhälst Du nach einer bestimmten Zeit diese Fehlermeldung:

Fatal error: Maximum execution time of 30 seconds exceeded in /pfad/zur/datei.php

Es kann auch sein, dass der Server nach Ablauf der Zeit den Aufruf mit einem Fehler 500 abbricht. Mit diesem Eintrag in die .htaccess erhöhst du die erlaubte Scriptlaufzeit:

php_value max_execution_time 300

Die „300“ steht in diesem Fall für die Zeit in Sekunden.
Wichtig: Du solltest den Wert immer mit Bedacht setzen. Ein zu hoher Wert in Verbindung mit einem fehlerhaften Script kann zu großen Problemen bis hin zum Absturz des Servers führen.

Memory Limit

Das Memory Limit bestimmt, wie viel Arbeitsspeicher ein PHP-Script verwenden darf. Wird der Wert überschritten, so bricht das Script ab. Sehr speicherintensive Plugins wie z.B. der Pagebuilder Elementor Pro führen oft zu Fehlermeldungen ähnlich dieser hier:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)

Du kannst das Speicherlimit erhöhen, indem du folgenden Eintrag in die .htaccess-Datei schreibst:

php_value memory_limit 256M

Die 256M stehen in diesem Beispiel für 256 MegaByte des Arbeitsspeichers des Servers

Auch hier ist Vorsicht geboten: Angenommen Du setzt einen Wert von 16GB. Bei einem Fehler in deinem PHP-Script hätte dies zur Folge, dass 16GB des Server-RAMs vollgeschrieben werden. Gerade im Shared Hosting (mehrere Kunden teilen sich einen Server) bedeutet das den sicheren Serverabsturz. Setze den Wert immer entsprechend der Voraussetzungen des Plugin/Theme-Anbieters. Achte dabei stets auf die Vorgaben deines Webhosters.

gzip aktivieren WordPress

Die Kompressionsmethode gzip findet mittlerweile auf fast allen Webservern Anwendung. Die Funktionsweise ist dabei sehr einfach: Wiederholt auftauchende Zeichenketten werden durch eine Referenz zur bereits bestehenden Zeichenkette ersetzt. Taucht eine Kette nicht mehrfach auf, so wird diese unkomprimiert in das Datenpaket geschrieben. Hierdurch kann gzip bis zu 80% der übertragenen Daten einsparen.

Die Vorteile liegen also auf der Hand: Weniger Datentransfer bedeutet schnellere Webseite. Und dies sorgt für eine bessere Nutzbarkeit der Webseite. Die Nutzung von gzip hat also unter Umständen einen direkten Einfluss auf das Ranking deiner Webseite.

Wie wird gzip aktiviert?

Trage dazu den folgenden Code in deine .htaccess-Datei im Grundverzeichnis deiner WordPress-Installation ein:

    <IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE application/javascript 
AddOutputFilterByType DEFLATE application/rss+xml 
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
AddOutputFilterByType DEFLATE application/x-font 
AddOutputFilterByType DEFLATE application/x-font-opentype 
AddOutputFilterByType DEFLATE application/x-font-otf 
AddOutputFilterByType DEFLATE application/x-font-truetype 
AddOutputFilterByType DEFLATE application/x-font-ttf 
AddOutputFilterByType DEFLATE application/x-javascript 
AddOutputFilterByType DEFLATE application/xhtml+xml 
AddOutputFilterByType DEFLATE application/xml 
AddOutputFilterByType DEFLATE font/opentype 
AddOutputFilterByType DEFLATE font/otf 
AddOutputFilterByType DEFLATE font/ttf 
AddOutputFilterByType DEFLATE image/svg+xml 
AddOutputFilterByType DEFLATE image/x-icon 
AddOutputFilterByType DEFLATE text/css 
AddOutputFilterByType DEFLATE text/html 
AddOutputFilterByType DEFLATE text/shtml 
AddOutputFilterByType DEFLATE text/javascript 
AddOutputFilterByType DEFLATE text/plain 
AddOutputFilterByType DEFLATE text/xml
</IfModule>

Sobald du die Einträge gesetzt hast, kannst du unter https://www.giftofspeed.com/gzip-test/ prüfen ob gzip funktioniert.

Expire Headers

Um die Funktionsweise der Expire-Headers zu verstehen, solltest du wissen: eine Webseite besteht aus einer Reihe von statischen Dateien (CSS, Javascripts, etc), die sich selten ändern. Es macht also keinen großen Sinn diese Dateien bei jedem Seitenaufruf erneut herunterzuladen. Aus diesem Grund setzt du gezielt Einträge, die dem Browser mitteilen, wann er welche Dateien erneut vom Server anfordern soll.

Der Vorteil liegt also darin, dass auch hier weniger Datentransfer stattfinden muss, wenn die Seite zu einem früheren Zeitpunkt schon einmal geladen wurde. Ein Beispieleintrag sieht so aus:

ExpiresByType image/jpeg „access plus 1 year“

Kurz übersetzt: Rufe die Bilder der Seite ein Jahr nach dem ersten Aufruf der Seite erneut vom Server ab. Bis dahin nutze den Browsercache.

Eine vollständige Liste für Expire-Headers sieht folgendermaßen aus. Schreibe dies an das Ende der .htaccess-Datei und speichere ab:

<IfModule mod_expires.c>
    ExpiresActive On

  # Expire-Headers für CSS, JavaScript
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType text/javascript "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"


  # Expire-Headers für Videos
  ExpiresByType video/mp4 "access plus 1 year"
  ExpiresByType video/mpeg "access plus 1 year"

  # Expire-Headers für Bilder
  ExpiresByType image/jpeg "access plus 1 year"
  ExpiresByType image/gif "access plus 1 year"
  ExpiresByType image/png "access plus 1 year"
  ExpiresByType image/webp "access plus 1 year"
  ExpiresByType image/svg+xml "access plus 1 year"
  ExpiresByType image/x-icon "access plus 1 year"
  
   # andere (zB pdf)
  ExpiresByType application/pdf "access plus 1 month"
</IfModule>

Du kannst prüfen ob die Expire-Header korrekt gesetzt sind, wenn du in der Netzwerkanalyse deines Browsers (Strg + Shift + E) eine der Dateien im Wasserdiagramm anklickst. Auf der rechten Seite siehst Du die Header-Einträge:

WordPress htaccess default – Standard und Einstellungen – Agentur für Webdesign

Im Browser erkennt man ob die Webseite die Expire-Headers verwendet.

Noch Fragen? Wir sind für dich da!