Das muss in jeder .htaccess stehen!

Kennst du das?

Die To-do-Liste an Dingen, die man tun möchte, um die eigenen WordPress-Website zu optimieren ist lang.

Und irgendwie weiß man oft nicht, wo man nun genau anfangen soll.

Dabei können nur wenige Zeilen Code den Unterschied ausmachen, wie gut, sicher und schnell WordPress funktioniert.

Die Rede ist von der .htaccess-Datei.

In diesem Artikel zeige ich dir, welche Einträge unbedingt in die .htaccess-Datei deiner WordPress-Website gehören.

Was ist die .htaccess?

Die .htaccess-Datei ist eine textbasierte Konfigurationsdatei, mit der sich Websites und Webanwendungen konfigurieren lassen. Im Falle von WordPress lässt sich durch das Bearbeiten der Datei das System sicherer und auch schneller machen. Es lohnt sich daher, sich mit dem Thema .htaccess auseinanderzusetzen.

Die .htaccess ist eine sehr mächtige Datei, mit der man sehr viel Gutes anstellen kann. Trägst du hier allerdings etwas Falsches ein, kann das dazu führen, dass deine Website nicht mehr richtig funktioniert oder nicht mehr erreichbar ist. Mache deshalb auf jeden Fall ein Backup von deiner .htaccess oder am besten ein komplettes WordPress-Backup, bevor du loslegst!

Die Codeschnipsel platzierst du bis auf wenige Ausnahmen in der .htaccess in deinem Hauptverzeichnis.

Deaktiviere XML-RPC

XML-RPC ist eine Schnittstelle, welche die Kommunikation zwischen WordPress und anderen Systemen ermöglicht. Also zum Beispiel der WordPress-App oder anderen Blogging-Plattformen. Unglücklicherweise eröffnet diese Schnittstelle eine ganze Reihe an Sicherheitslücken und wurde in der Vergangenheit häufig für Angriffe auf Websites verwendet.

Da XML-RPC als Schnittstelle mittlerweile von der REST API abgelöst wurde, kannst du sie ohne schlechtes Gewissen deaktivieren. Natürlich kannst du hierfür eines der zahlreichen verfügbaren Plugins installieren. Ich würde dir allerdings empfehlen, dieses Problem stattdessen über einige Zeilen Code zu lösen und damit ein weiteres Plugin einzusparen.

Füge hierfür einfach den folgenden Code in die .htaccess-Datei in deinem Hauptverzeichnis ein:

# XML-RPC deaktivieren
<Files xmlrpc.php>
Order Allow,Deny
Deny from all
</Files>

Verhindere die Ausführung von PHP-Dateien im Uploads-Ordner

Rein theoretisch können über falsch konfigurierte Formulare PHP-Dateien in den Uploads-Ordner hochgeladen und dort ausgeführt werden. Deshalb ist dieses Verzeichnis besonders anfällig für Sicherheitsprobleme.

Das Einschränken der Schreibrechte für diesen Ordner ist allerdings keine Option, da dann Dinge wie das Hochladen von Bildern in die WordPress-Mediathek nicht mehr funktionieren.

Du kannst allerdings zumindest die Ausführung bestimmter Dateitypen verhindern.

Auch der Code hierfür kommt ausnahmsweise nicht in die .htaccess-Datei in deinem Hauptverzeichnis. Erstelle stattdessen eine Datei mit dem Namen .htaccess im Uploads-Ordner und fügen den folgenden Code ein:

# Ausführung von PHP-Dateien blockieren
<Files *.php>
Deny from All
</Files>

Damit ist zwar weiterhin das Hochladen kritischer Dateien möglich, aber deren Ausführung wird blockiert.

Aktiviere Browser Caching

Browsercaching ist ein wichtiges Mittel, um die Ladezeiten von Webseiten zu verbessern. Durch das Aktivieren des Browsercachings werden Webseiten-Dateien im Zwischenspeicher des Browsers abgelegt, sodass beim nächsten Aufruf der Seite diese Dateien nicht erneut heruntergeladen werden müssen.

Füge folgende Zeilen in die .htaccess-Datei ein, um Browsercaching auf deiner Webseite zu aktivieren:

# Browsercaching aktivieren
<IfModule mod_expires.c> 
ExpiresActive On ExpiresByType image/jpg “access plus 1 year” 
ExpiresByType image/jpeg “access plus 1 year” 
ExpiresByType image/gif “access plus 1 year” 
ExpiresByType image/png “access plus 1 year” 
ExpiresByType text/css “access plus 1 month” 
ExpiresByType application/pdf “access plus 1 month” 
ExpiresByType text/x-javascript “access plus 1 month” 
ExpiresByType application/x-shockwave-flash “access plus 1 month” 
ExpiresByType image/x-icon “access plus 1 year” 
ExpiresDefault “access plus 2 days” 
</IfModule>

Die einzelnen Zeilen sorgen dafür, dass bestimmte Dateitypen ins Browsercaching eingeschlossen werden. Du kannst diese Liste beliebig erweitern oder bei Bedarf auch Dateitypen entfernen, die du nicht cachen willst.

Nachdem du den Code in die .htaccess-Datei eingefügt hast, solltest du die Ladezeit deiner Website überprüfen, um sicherzustellen, dass das Browsercaching ordnungsgemäß funktioniert. Dazu kannst du zum Beispiel ein Tool wie GTmetrix verwenden.

Aktiviere die GZIP-Komprimierung

Auch die GZIP-Komprimierung ist eine Möglichkeit, die Ladezeit einer Website erheblich zu verbessern. Sie sorgt dafür, dass Daten zwischen Webserver und Browser komprimiert übertragen werden.

Zuerst solltest du sicherstellen, dass du auf deinem Server die mod_deflate-Erweiterung installiert hast. Diese Erweiterung ist für Apache-Webserver verfügbar und kann über das Kommandozeilen-Tool oder im cPanel deines Webhosters aktiviert werden.

Nachdem du sichergestellt hast, dass die mod_deflate-Erweiterung installiert ist, kannst du die GZIP-Komprimierung aktivieren. Dazu fügst du einfach den folgenden Code in die .htaccess-Datei ein:

# GZIP-Komprimierung aktivieren
<IfModule mod_deflate.c> 
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript 
</IfModule>

Dieser Code aktiviert die GZIP-Komprimierung für alle Dateitypen, die in der obigen Liste aufgeführt sind. Du kannst die GZIP-Komprimierung auch für andere Dateitypen aktivieren, indem du sie der obigen Liste hinzufügst.

Auch nach dieser Anpassung solltest du die Ladezeit deiner Website mit einem Tool wie GTMetrix überprüfen.

Schütze den WordPress-Login durch eine zusätzliche Passwort-Abfrage

Die Login-Seite von WordPress befindet sich mit den Standard-Einstellungen immer unter derselben URL unter /wp-login/. Dazu kommt, dass es kein Limit für die falsche Eingabe des Passworts gibt. Damit ist es ein Leichtes, beliebig viele Passwörter durchzuprobieren.

Genauso einfach lässt sich diesem Treiben allerdings auch ein Riegel vorschieben, indem du der Login-Seite eine zusätzliche Passwort-Abfrage vorschaltest.

Den entsprechenden Code kopierst du diesmal ausnahmsweise allerdings nicht in die .htaccess in deinem Hauptverzeichnis. Navigiere stattdessen zunächst via FTP zum Ordner /wp-admin/erstelle dort zwei Dateien mit den Namen .htaccess und .htpasswd.

Da die Inhalte der .htpasswd verschlüsselt sind, rufst du nun einen .htpasswd-Generator, wie zum Beispiel hier auf. Gib einen beliebigen Benutzernamen und ein Passwort ein, klicke auf .htpasswd generieren und kopiere das Ergebnis in die soeben erstellte Datei. Speichere diese ab.

Füge den folgenden Code in die .htaccess ein, ersetze den Pfad zu deiner .htpasswd-Datei und speichere diese ebenfalls ab:

# Zusätzliche Passwort-Abfrage für WordPress-Login
AuthName „Access Denied“
AuthType Basic
AuthUserFile /dein/pfad/.htpasswd
require valid-user

Rufst du den Login-Bereich deiner WordPress-Seite nun erneut auf, erscheint ein zusätzliches Fenster, das dich nach Benutzername und Passwort fragt.

Verhindere Zugriffe auf die .htaccess

Wie du bereits festgestellt hast, enthält die .htaccess viele sicherheitsrelevante Informationen und Einstellungen. Es wäre deshalb ziemlich ungeschickt, wenn diese Datei in die falschen Hände gerät.

Um den Zugriff auf die .htaccess-Datei einzuschränken, füge den folgenden Code ein:

# Zugriff auf die .htaccess blockieren
<Files ~ “^\.ht”> Order allow,deny Deny from all </Files>

Lege 301-Weiterleitungen an

Eine 301-Weiterleitung teilt dem Browser mit, dass eine bestimmte Seite oder Datei an einem anderen Ort zu finden ist. 301-Weiterleitungen werden häufig verwendet, wenn eine Website umstrukturiert oder eine neue Domain eingerichtet wird.

301-Weiterleitungen können in der .htaccess angelegt werden. Hierfür werden die folgenden Zeilen eingefügt:

Redirect 301 /alteseite http://www.deinewebsite.de/neueseite
Redirect 301 /alteseite2 http://www.deinewebsite.de/neueseite2

Die entsprechenden URLs ersetzt du selbstverständlich gegen deine eigenen. Diese Weiterleitungen leiten dann jeden, der eine der angegebenen alten URLs aufruft, an die neue Adresse weiter.

Schließe bestimmte Nutzer per IP-Adresse aus

In manchen Fällen macht es Sinn, bestimmte IP-Adressen von der Website auszuschließen. Das können zum Beispiel unerwünschte Nutzer oder Bots sein.

Um eine bestimmte IP-Adresse auszuschließen, füge einfach folgende Zeile in die .htaccess-Datei ein:

# IP-Adresse blockieren
Deny from 123.456.789

Dies würde die IP-Adresse 123.456.789 blockieren. Man kann auch mehrere IP-Adressen blockieren, indem man sie durch Kommata trennt, z.B.:

# IP-Adressen blockieren
Deny from 123.456.789, 987.654.321

Verhindere, dass deine Bilder eingebunden werden (Hotlinking)

Hotlinking bedeutet, dass ein Bild deiner Website auf einer anderen Website einbettet wird. Dies führt zu einer erheblichen Bandbreitenbelastung und dazu, dass deine Website langsamer wird oder sogar ganz ausfällt.

Glücklicherweise ist es relativ einfach, hotlinking zu verhindern.

Alles, was du brauchst, ist ein kleines Stück Code, das du in deine .htaccess-Datei einfügen kannst:

# Hotlinking deaktivieren
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?deinewebsite.de [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]

Dieser Code stellt sicher, dass Bilder in den angegebenen Formaten lediglich auf deiner eignen Websites eingebunden werden können. Wenn jemand versucht, ein Bild auf einer anderen Website einzubetten, wird das entsprechende Bild nicht angezeigt.

Sperre die wp-config.php für alle

Neben der .htaccess enthält auch die Datei wp-config.php wichtige Einstellungen für deine WordPress-Installation, die nicht in die falschen Hände geraten sollten. Deshalb blockieren wir auch hier einfach den Zugriff auf die wp-config.php.

Füge dazu den folgenden Code in deine .htaccess ein:

# Zugriff auf die wp-config.php deaktivieren
<Files wp-config.php>
Order allow,
deny Deny from all 
</Files>

Lass die wp-admin.php nur für ausgewählte IPs zu

Wenn du nur bestimmte IP-Adressen auf den Adminbereich von WordPress zugreifen lassen willst, kannst du dies ganz einfach über die .htaccess-Datei tun. Das macht allerdings nur Sinn, wenn du über einen Internetanschluss mit fester IP-Adresse verfügst.

Falls das bei dir der Fall ist, füge folgende Zeile am Ende der .htaccess-Datei ein:

# Zugriff auf das Backend nur für ausgewählte IPs
order deny,allow
deny from all
allow from 123.456.789


Ersetze 123.456.789 mit der IP-Adresse, von der aus du auf das WordPress-Backend zugreifen willst. Solltest du die IP-Adresse irgendwann ändern müssen, editierst du die .htaccess-Datei einfach erneut und trägst die neue IP-Adresse ein.

Hi ich bin Andy, der Gründer von Digitales Mojo. Digitales Mojo ist aus meinem festen Glauben heraus entstanden, dass jeder von uns Wissen und Fähigkeiten in sich trägt, um das Leben anderer besser und lebenswerter zu machen.

Schreibe einen Kommentar

Share via
Copy link
Powered by Social Snap