Die ultimative Wordpress .htaccess erstellen

Inhaltsverzeichnis

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 WordPressCode-Sprache: PHP (php)

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.

Christian Pust
WordPress & Onlinemarketing Experte mit über 15 Jahren Erfahrung. Entwickler & CEO von Trackboxx – der Google Analytics Alternative.

6 Antworten

  1. 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. 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.

  3. hi Christian vielen dank für diesen sehr interessanten Artikel.
    ich habe auf einer Seite Turbulenzen auf der ich

    a. Wordpress und
    b. LimeSurvey installiert habe.

    Wp läuft sauber – und wirklich ohne Probleme. Aber die LimeSurvey-Installation die ich in die Ordner gelegt habe meldet immer ein ERR_EMPTY_RESPONSE welches ggf auf htaccess-Direktiven deuten könnte die ein Redirect leiten und so die limesurvey-Admin (bzw. login-) Seite nicht zugänglich machen.

    Wie gesagt: die WP läuft ganz ohne Probleme aber das LimeSurvey-Script (vgl. http://www.limesurvey.org ) ist nicht zu erreichen – v.a. nicht unter Chrome – sehr oft aber auch nicht unter FireFox.
    Meinst du dass ich hier weiterkomme in dem ich in die htaccess der WP

    a. reinsehe
    b. eingreife

    als ultima-Ratio koennte ich auch noch folgendes machen:
    wordpress und limesurvey side by side installieren. Das würde imho einen redirect von MyDomain.TLD/ -> MyDomain.TLD/wordpress/ voraussetzen, aber ich hätte dann ggf. die Störeffekte nicht mehr – hätte klar definierte und saubere Ordnerstrukturen und hätte keine delays und loops wenn es zur URL-Dingen kommt

    Was meinst du denn!? Freue mich von Dir zu hoeren.

    Viele Grüße
    Matze

    1. Hi Matze, in dem Fall kann ich leider nicht weiterhelfen da wir hier (bis auf “kleinere Hilfen”) keinen speziellen Support bieten. Das würde in jedem Fall den Rahmen und auch die Grundidee dieses Blogs sprengen.

  4. Danke für diesen wertvollen Beitrag!!!
    Die ganze Unternehmenswebseite ging nicht mehr… und darüber lief der ganze Neukundenkontakt !!1

    Das hat mich gerettet:

    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.

    Vielen vielen Dank!!!!!!!!! ich habe 1. Mio. Foren durchsucht und genausoviele Tabs offen gehabt…. und dann wurdest Du gefunden!!

    Ich kam über das Google-Search-Keyword: “wordpres .htaccess-Datei was ist das”
    zu dir.
    Vielen Dank!!

    Goldwert dieser Artikel!

Schreibe einen Kommentar

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

Das könnte dich auch interessieren

Du benötigst Unterstützung bei deinem WordPress Projekt?

Dein Ansprechpartner
Christian