Die ultimative WordPress .htaccess erstellen

Bei der .htaccess handelt es sich um eine Konfigurationsdatei, die ein Programm bzw. Apache-Server indirekt umkonfiguriert. Direkten Zugriff auf die Hauptkonfigurationsdatei eines Webservers (httpd.conf) muss man also nicht haben, um dessen “Verhalten” zu ändern.

Wichtig: Die Anweisungen der .htaccess beziehen sich immer auf das jeweilige Verzeichnis, in dem sich die Datei befindet. Damit die Einstellungen global wirken, sollte sich die Datei also immer im Hauptverzeichnis befinden. Kling alles ziemlich technisch? Stimmt, doch es macht durchaus Sinn, sich mit dem Thema auseinanderzusetzen. Denn spezielle Codes für die .htaccess können WordPress schneller und sicherer machen.

Wo befindet sich die WordPress .htaccess?

Die .htaccess Datei befindet sich bei WordPress im Root-Verzeichnis – dem Hauptverzeichnis, auf dem eure Domain beim Webhoster liegt. Zugriff auf dieses Verzeichnis und damit auf die .htaccess erhaltet ihr mit einem FTP-Programm (z. B. FileZilla).

WordPress .htaccess manuell erstellen

Eine .htaccess Datei erstellt WordPress spätestens dann, sobald ihr die Permalink-Einstellungen ändert. Falls die WordPress .htaccess fehlt, könnte es also daran liegen, dass ihr an dieser Stelle noch nichts geändert habt. Je nach Server-Konfiguration kann es jedoch sein, dass das automatisierte Erstellen von Dateien nicht möglich ist. WordPress teilt euch dann beim Abspeichern neuer Permalinkeinstellungen mit, dass keine .htaccess Datei erstellt werden kann. In diesem Fall müsst ihr die Datei manuell erstellen.

Schritt 1: Texteditor öffnen

Öffnet dafür einen Texteditor und benennt das Dokument z. B. als a.htaccess – leere Dateien lassen sich mit dem Editor leider nicht erstellen. Wichtig: Nutzt auf keinen Fall „Microsoft Word“ oder etwas Vergleichbares, da solche Programme zusätzliche Formatierungen einfügen.

Schritt 2: Datei auf Server hochladen

Als nächstes müsst ihr die –> leere <– .htaccess Datei via FTP in eurem Hauptverzeichnis hochladen. Das ist der Ordner, in dem sich auch die wp-config.php befindet.

Schritt 3: Datei umbenennen

Weil die Datei ja noch a.htaccess heißt (oder wie auch immer ihr sie genannt habt), müsst ihr diese noch in „.htaccess“ (ohne Anführungsstriche natürlich) umbenennen.

Schritt 4: Rechte zuweisen

Weil die Datei leer ist, muss WordPress die .htaccess eigenständig mit Code befüllen können. Viele Plugins benötigen beispielsweise .htaccess Schreibrechte. Dafür müssen lediglich die Dateiattribute angepasst werden. Klickt hierfür in eurem FTP-Programm mit der rechten Maustaste auf die .htaccess Datei und wählt den Menüpunkt „Dateiberechtigungen“ aus. Dort müsst ihr dann das Beschreiben der .htaccess zulassen.

Ihr wollt wissen wie ihr WordPress hindert die htaccess zu bearbeiten, dann lest den folgenden Artikel → WordPress htaccess Bearbeitung verhindern

 

Wichtig: Keine Änderungen ohne BackUp vornehmen!

Bevor ihr Änderungen an der .htaccess Datei in WordPress vornehmt, solltet ihr ein .htaccess Backup erstellen. Falls ihr aus Versehen etwas “kaputt” macht, könnt ihr dann einfach die ursprüngliche Datei wieder hochladen /aktivieren und die Änderungen rückgängig machen. Das Backup könnt ihr ganz einfach durchführen, indem ihr die aktuelle .htaccess umbenennt und eine neue WordPress .htaccess erstellt.

Bevor ihr Änderungen an der .htaccess Datei in WordPress vornehmt, solltet ihr ein .htaccess Backup erstellen. Falls ihr aus Versehen etwas “kaputt” macht, könnt ihr dann einfach die ursprüngliche Datei wieder hochladen /aktivieren und die Änderungen rückgängig machen. Das Backup könnt ihr ganz einfach durchführen, indem ihr die aktuelle .htaccess umbenennt und eine neue WordPress .htaccess erstellt.

WordPress .htaccess gelöscht: was tun?

Tipp: Solltet ihr eure WordPress .htaccess gelöscht haben, könnt ihr den folgenden Code einfügen, damit alles normal funktioniert.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Interessante Codezeilen für die .htaccess

Was anstelle bzw. zusätzlich zu den Standard-Codezeilen in eure .htaccess gehört, ist am Ende des Tages euch überlassen. Fakt ist: Sowohl die Sicherheit als auch die Performance lassen sich durch zusätzlichen Code für die .htaccess verbessern. Zu viel des Guten kann die Performance allerdings wieder schwächen. Ihr solltet also abwägen, was ihr wirklich braucht und was nicht. Dazu aber später mehr.

Adminbereich nur für bestimmte IP-Adressen sichtbar machen

# wp-admin nur für gewisse IPs freischalten
order deny,allow
deny from all
allow from IPAdresse1
allow from IPAdresse2

Zugriff auf WP-config.php für alle User sperren

# Zugriff auf wp-config unterbinden
 <files wp-config.php>
 order allow,deny
 deny from all
 </files>

Gzip Komprimierung aktivieren

# GZIP Komprimierung
 <IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
 </IfModule>

Browser Caching aktivieren

# Browser Caching
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"

Image-Hotlinking unterbinden

# Image Hotlinking verhindern
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?eureseite.de [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://deinbild.jpg [NC,R,L]

301-Weiterleitung / Redirect einrichten

# 301 Weiterleitungen einrichten
Redirect 301 /alteseite.html http://neueseite.de/neueurl
Redirect 301 / http://neueseite.de/

Bestimmte Nutzer über deren IP-Adresse ausschließen

# Nutzer via IP ausschließen
 <Limit GET POST>
 order allow,deny
 deny from XXX.XXX.XX.X
 deny from XXX.XXX.XX.X
 allow from all
 </Limit>

Die perfekte WordPress .htaccess

Während neuer Code in der .htaccess WordPress schneller machen kann, kann zu viel Code das genaue Gegenteil bewirken. Im Endeffekt ist das wie bei Erweiterung, denn auch Caching Plugins und andere Helferlein arbeiten (teilweise) über Codezeilen in der .htaccess. Im Laufe Jahre haben wir (und unser Vorgänger bei fastWP) verschiedenste Konfigurationen der .htaccess auf Herz und Nieren getestet. Herausgekommen ist die (unserer Meinung nach) ultimative WordPress .htaccess, die sozusagen den “Sweet Spot” in puncto Performance und Sicherheit darstellt.

Kein unnötiger Ballast für beste Performance

Unsere perfekte .htaccess für WordPress enthält keinerlei Ballast mehr, keine überflüssigen Zeilen. Alle wirklich wichtigen Punkte und Befehle sind jedoch weiterhin enthalten. So bleibt die Datei schön klein, angenehm schlank und natürlich extrem schnell. Die ultimative WordPress .htaccess cached Grafiken, was für enorme Performance sorgt, sie komprimiert Seiten mit Gzip, was die Größe pro Seite um bis zu 80 Prozent reduzieren kann, und verbietet beispielsweise das Verlinken von Bildern auf fremden Websites (ausgenommen Feedly und Co).

Ersetzt den Code innerhalb eurer Standard .htaccess durch folgende Zeilen:

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
</IfModule>

<IfModule mod_headers.c>
Header append Cache-Control "public"
Header append Vary Accept-Encoding
Header set Connection keep-alive
Header unset ETag
FileETag None
</IfModule>

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access 60 seconds"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType text/css "access 1 month"
ExpiresByType text/javascript "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_FILENAME} \.(jpg|jpeg|png|gif|ico|css|js)$ [NC]
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?fastwp\. [NC]
RewriteCond %{HTTP_REFERER} !^https?://([^.]+\.)?feedly\. [NC]
RewriteRule \.(jpg|jpeg|png|gif|ico|css|js)$ - [F,NC,L]
</ifModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Hinweis #1: In der WordPress .htaccess kommt Code vor, in dem eine URL eingetragen werden muss. im Beispiel wurde dort „fastwp“ eingetragen. Diese Stellen müsst ihr natürlich entsprechend abändern und eure eigene URL hinzufügen, damit der Code korrekt funktioniert.

Hinweis #2: Für Webfonts, die auf dem eigenen Server liegen, muss der Code eventuell noch erweitert werden. Alle Infos zum korrekten Einbinden von Webfonts findet ihr hier.

2 Kommentare zu „Die ultimative WordPress .htaccess erstellen“

  1. Avatar

    Hi,
    vielen Dank! Hat mir sehr geholfen und die Performance meiner Seite verbessert.
    Jetzt ist leider das Einzige, dass mein Theme Costumizer nicht mehr funktionieren mag mit der neuen .htaccess Datei.
    Ich nutze das Theme Ashe Pro / WordPress. Hast dafür noch einen Tipp?

    VG
    Alisha

  2. Christian

    Hi Alisha,
    leider so ohne weiteres nicht da ich dein Theme nicht kenne und auch nicht weiß was du exakt in die htaccess eingetragen hast.
    Eigentlich ist da nichts dabei was deinen Customizer beeinflussen sollte.

Kommentar verfassen

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

154 SEO Tools - die ultimative Liste!

Abonniere jetzt unseren Newsletter und lade dir die Liste kostenlos herunter!

Alles klar! Prüfe jetzt deinen Posteingang um die Anmeldung abzuschließen.