WordPress htaccess

WordPress htaccess – Was bewirkt die htaccess-Datei

Die .htaccess-Datei ist eine der wichtigsten Dateien in deiner WordPress-Installation. Sie wird verwendet, um Weiterleitungen und Permalinks zu konfigurieren, kann aber auch verwendet werden, um die Leistung einer Website zu verbessern.

In diesem Beitrag gebe ich dir einen kurzen Überblick darüber, was die WordPress htaccess Datei ist und was sie bewirkt.

Was ist die WordPress htaccess?

Bei der WordPress htaccess handelt sich um eine Konfigurationsdatei für den Apache Webserver (aber auch Litespeed Server unterstützen die Verwendung der htaccess Datei). WordPress verwendet diese Datei, um die Sicherheit und Leistung der Website zu verbessern. Sie ermöglicht es, verschiedene Aspekte der Website zu steuern, darunter Weiterleitungen, Permalinks, Passwortschutz und Caching.

Die Datei htaccess solltest du im Stammverzeichnis deiner WordPress Website vorfinden.

Eine der häufigsten Anwendungen für die htaccess-Datei ist die Umleitung von Besuchern von einer URL zu einer anderen. Wenn zum Beispiel vor kurzem der Domänenname geändert wurde, kann die htaccess-Datei verwendet werden, um Besucher von der alten Domain zur Neuen umzuleiten. Aber auch für die Weiterleitung von http auf https wird die WordPress htaccess verwendet. Legst du in den WordPress Einstellungen fest, dass deine Website nur über https aufgerufen werden kann, so wird hierfür ein Eintrag in der htaccess angelegt. (Das musst du nicht manuell machen, sondern dieser Arbeitsschritt wird von Plugins wie beispielsweise “Really Simple SSL” angelegt.)

Auch hinsichtlich Caching kann die htaccess-Datei verwendet werden. Das Caching hilft, die Ladezeit deiner Website zu verbessern, indem es beispielsweise bestimmte Informationen lokal im Webbrowser des Besuchers speichert. Wenn ein Besucher eine Seite aufruft, die zwischengespeichert wurde, wird er die zwischengespeicherte Version laden, anstatt alle Informationen erneut von deinem Webserver abzurufen.

.htaccess – Warum steht ein Punkt vor htaccess?

Der Punkt vor htaccess zeigt an, dass es sich um eine versteckte Datei handelt. Das bedeutet, dass sie in der Standardansicht des WordPress Dateimanagers nicht sichtbar ist. Wenn du die Datei sehen und bearbeiten möchtest, musst du das FTP-Programm oder den WordPress-Dateimanager so einstellen, dass versteckte Dateien angezeigt werden.

Wie kann man die .htaccess Datei bearbeiten?

Für die Bearbeitung der WordPress htaccess fallen mir persönlich zwei Wege ein, die ich nachfolgend vorstellen möchte.

WordPress htaccess bearbeiten mittels FTP-Zugang

Bei dieser Variante musst du dich per FTP mit deiner Website verbinden (zum Beispiel mit dem Programm / FTP-Client Filezilla). Sobald die Verbindung zum Server aufgebaut wurde, kannst du in das WordPress Stammverzeichnis navigieren. Hier sollte dir nun die Datei .htaccess angezeigt werden. Sollte dies nicht der Fall sein, so vergewissere dich, dass im FTP-Client die Option “Versteckte Dateien” aktiviert ist. (Und bedenke, dass wenn dein Hosting-Anbieter NGINX Server einsetzt, keine .htaccess verwendet wird.)

Sobald du die .htaccess-Datei gefunden hast, kannst du diese auf deinen Computer herunterladen. Für den Fall der Fälle solltest du in jedem Fall eine Sicherungskopie haben, falls etwas schief geht.

Nun kannst du die Datei in deinem bevorzugten Editor öffnen und die gewünschten Änderungen vornehmen. Sobald du damit fertig bist, kannst du die aktualisierte .htaccess-Datei wieder auf den Server hochladen und somit die bestehende (alte) Datei überschreiben.

WordPress htaccess bearbeiten mittels Rank Math

Rank Math ist das von mir bevorzugte SEO Plugin für WordPress. Es bietet viele (kostenfreie) Funktionen hinsichtlich Suchmaschinenoptimierung, ist übersichtlich und wird schnell geladen. Aber Rank Math bietet auch die Möglichkeit, die WordPress htaccess direkt zu editieren.

Wenn du Rank Math installiert hast, dann navigiere im WordPress Dashboard zu Rank Math –> Allgemeine Einstellungen –> .htaccess Datei bearbeiten.

Hier kannst du nun die gewünschten Anpassungen direkt in die WordPress htaccess schreiben.

Rank Math - WordPress htaccess bearbeiten

WordPress htaccess nutzen

Wie schon erwähnt, die WordPress htaccess Datei ein leistungsfähiges Werkzeug, das zur Verbesserung der Sicherheit und Leistung verwendet werden kann. Nachfolgend einige Beispiele, wie man (bei Bedarf) die Dateieinträge anpassen kann.


Website von http auf https umleiten

Damit eine Weiterleitung von http auf https, sowie eine Weiterleitung von nicht www. auf www. erfolgt, kannst du den folgenden Codeschnipsel in die .htaccess Datei deiner WordPress Website einfügen:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteCond %{HTTP_HOST} !^www.domain.de$ [NC]
RewriteRule ^(.*)$ https://www.domain.de/\ [L,R=301]

RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://www.domain.de/\ [R=301,L]

</IfModule>

Bitte ersetze den Platzhalter domain mit deinem Domainnamen.

Die Weiterleitung funktionieren nun folgendermaßen:

http://www.domain.de wird auf https://www.domain.de weitergeleitet.
http://domain.de wird auf https://www.domain.de weitergeleitet.
https://domain.de wird auf https://www.domain.de weitergeleitet.

Solltest du die Schreibweise ohne www. bevorzugen, so kann das Weiterleitungsziel entsprechend angepasst werden. Hierfür musst du einfach die URL Angabe bei “RewriteRule” anpassen und auf die Version ohne www. verweisen.


Caching in der WordPress htaccess Datei festlegen und Ladezeit verbessern

Durch die Nutzung des Browser-Caching kann die Anzahl der HTTP-Anfragen, die der Server verarbeiten muss, reduziert werden. Hierdurch verbessert sich die Ladezeiten und die Leistung der Website.

Öffnen die .htaccess-Datei und füge die folgenden Zeilen ein:

<IfModule mod_expires.c>
    FileETag MTime Size
    AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
    ExpiresActive On
    ExpiresByType text/html "access 600 seconds"
    ExpiresByType application/xhtml+xml "access 600 seconds"
    ExpiresByType text/css "access 1 month"
    ExpiresByType text/javascript "access 1 month"
    ExpiresByType text/x-javascript "access 1 month"
    ExpiresByType application/javascript "access 1 month"
    ExpiresByType application/x-javascript "access 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType application/pdf "access 1 month"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresByType image/jpg "access 1 year"  
    ExpiresByType image/jpeg "access 1 year"
    ExpiresByType image/png "access 1 year"
    ExpiresByType image/gif "access 1 year"
    ExpiresDefault "access 1 month"
</IfModule>

Durch die Verwendung dieses Codes werden Ihre wichtigsten statischen Dateien (Bilder, CSS, PDFs, JS usw.) zwischengespeichert, um in Zukunft schnellere Ladezeiten für (wiederkehrende) Besucher zu erreichen.

Da beim Browser-Caching die Daten im Browser des Webbesuchers zwischengespeichert werden, zeigt sich die verbesserte Ladezeit erst beim zweiten Aufruf der Webseite. Schließlich müssen beim ersten Mal laden alle notwendigen Daten direkt vom Webserver bezogen werden.


Mit der WordPress htaccess Datei die Sicherheit der WordPress-Website verbessern

Hier gibt es mehrere sicherheitskritische Bereiche, die durch Anpassungen in der .htaccess verbessert werden können. Nachfolgend einige Beispiele.

Zugriffe auf XML-RPC abstellen

Die XML-RPC-Schnittstelle ist ein Remote-Procedure-Call-System. Das heißt, dass hiermit ein “Fernzugriff” möglich ist. WordPress kann dieses System nutzen, um anderen Anwendungen (zum Beispiel eine App) die Interaktion mit dem WordPress-System zu ermöglichen.

Doch oftmals wird diese XML-RPC-Schnittstelle überhaupt nicht verwendet. (Es sei denn, man möchte von Unterwegs per iPad etc. mit WordPress arbeiten.) Da diese Schnittstelle jedoch häufiger Angriffspunkt für DDOS-Attacken ist, sollte man XML-RPC nach Möglichkeit deaktivieren.

Durch folgende Code-Zeilen in der WordPress htaccess kann die XML-RPC-Schnittstelle deaktiviert werden:

<Files xmlrpc.php>
Order Deny,Allow
Deny from all
</Files>

Blockieren von großen Attacken auf Upload-Ziele

Seit Ende 2019 konnten Sicherheitsexperten Massen-Angriffe auf Upload-Ziele feststellen. Bei dieser Art von Angriff werden typische Upload-Ziele in WP Seiten gescannt, in der Hoffnung offene Tore zu finden. Diese Attacken sind gefährlich und belasten zudem den Webserver.

Zum Glück kann diesen Angriffen mit Hilfe der htaccess ein Riegel vorgeschoben werden.

# 7G Addon: Stop Aggressive Scanning for Uploads-Related Targets
# https://perishablepress.com/stop-aggressive-scanning-uploads/


	# RewriteCond %{REQUEST_URI} /php(unit)?/ [NC,OR]
	# RewriteCond %{REQUEST_URI} \.(aspx?|env|git(ignore)?|phtml|rar|well-known) [NC,OR]
	# RewriteCond %{REQUEST_URI} /(cms|control_panel|dashboard|home_url=|lr-admin|manager|panel|staff|webadmin) [NC,OR]
	# RewriteCond %{REQUEST_URI} /(adm(in)?|blog|cache|checkout|controlpanel|ecommerce|export|magento(-1|web)?|market(place)?|mg|onli(n|k)e|orders?|shop|tmplconnector|uxm|web?store)/ [NC,OR]
	
	RewriteCond %{REQUEST_URI} (_timthumb_|timthumb.php) [NC,OR]
	RewriteCond %{REQUEST_URI} /(install|wp-config|xmlrpc)\.php [NC,OR]
	RewriteCond %{REQUEST_URI} /(upload|uploadify|uploadbg|up__uzegp)\.php [NC,OR]
	RewriteCond %{REQUEST_URI} /(clipboard\.min\.js|comm\.js|mysql-date-function|simplebootadmin|vuln\.htm|www\.root\.) [NC,OR]
	RewriteCond %{REQUEST_URI} /(admin-uploadify|fileupload|jquery-file-upload|upload_file|upload|uploadify|webforms)/ [NC,OR]
	RewriteCond %{REQUEST_URI} /(ajax_pluginconf|apikey|connector(.minimal)?|eval-stdin|f0x|login|router|setup-config|sssp|vuln|xattacker)\.php [NC]
	
	RewriteRule .* - [F,L]

Mehr Infos hierzu kannst du auf folgender Webseite finden:
https://perishablepress.com/stop-aggressive-scanning-uploads/

SQL Injections verhindern

Eine SQL-Injektion ist eine Technik, mit der eine Schwachstelle in der Software einer Website ausgenutzt wird, die es Angreifern ermöglicht, bösartigen SQL-Code in ein Eingabefeld (oftmals ungesicherte Formulare oder unsichere Plugins) auf der Website zu injizieren. Dieser Code kann vom Server der Website ausgeführt werden, was zum Diebstahl von Daten oder zur Ausführung von Befehlen auf der Website führt.

Der folgende .htaccess Block kann einige SQL Injections verhindern (kann unter Umständen aber auch zu Problemen bei normaler Funktionalität führen):

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} ^(HEAD|TRACE|DELETE|TRACK) [NC]
RewriteRule ^(.*)$ - [F,L]
RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]
RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]
RewriteCond %{QUERY_STRING} tag\= [NC,OR]
RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
RewriteCond %{QUERY_STRING} http\: [NC,OR]
RewriteCond %{QUERY_STRING} https\: [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|%3D) [NC,OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|ê|"|;|\?|\*|=$).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(&#x22;|&#x27;|&#x3C;|&#x3E;|&#x5C;|&#x7B;|&#x7C;).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%24&x).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(globals|encode|localhost|loopback).* [NC,OR]
RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]
RewriteCond %{HTTP_COOKIE} !^.*wordpress_logged_in_.*$
RewriteRule ^(.*)$ - [F,L]
</IfModule>

Abschließende Überlegungen

Die htaccess-Datei von WordPress ist ein leistungsfähiges Werkzeug, das zur Verbesserung von Sicherheit und Leistung eingesetzt werden kann. Wenn du jedoch mit dieser Datei nicht vertraut bist, solltest du sehr vorsichtig bei der Anpassung der htaccess sein und stets eine Datensicherung anlegen. Zudem ist das manuelle editieren der WordPress htaccess nicht zwingend notwendig, da Anpassungen an dieser Datei auch durch Plugins automatisch vorgenommen werden. Nichts desto trotz ist es gut, wenn man weiß, wofür diese Datei genutzt wird.

Der Punkt vor htaccess zeigt an, dass es sich um eine versteckte Datei handelt. Dies hat zur Folge, dass die Datei in der Standardansicht des Dateimanagers nicht sichtbar ist.

Nein. Die WordPress htaccess kann zwar manuell angepasst werden, aber wenn man sich hierbei nicht auskennt, kann man auch Fehler provozieren. Viele Plugins greifen automatisch in die htaccess-Datei ein und passen diese entsprechend den gewünschten Einstellungen an. Beipielsweise hinterlegen Caching-Plugins die zu nutzenden Anweisungen automatisch in der WordPress htaccess.

Die kurze Antwort lautet nein. NGINX verwendet seine eigenen Konfigurationsdateien anstelle von htaccess.

Schreibe einen Kommentar

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