Was ist die .htaccess-Datei und wie verwenden Sie sie in WordPress?

Veröffentlicht: 2020-10-27

Sie haben vielleicht schon einmal von der .htaccess-Datei gehört, hatten aber keine Ahnung, was sie ist oder was sie tut. In diesem Artikel werden wir die .htaccess-Datei ins Rampenlicht rücken und ihre Geheimnisse ein für alle Mal lüften. Am Ende dieses Artikels werden Sie verstehen, was die .htaccess-Datei ist, was die .htaccess-Datei tut und wie Sie die .htaccess-Datei verwenden können, um bestimmte Aufgaben zu erfüllen. Lasst uns anfangen!

Was ist die .htaccess-Datei?

Beginnen wir damit, uns genau anzusehen, was eine .htaccess-Datei ist. „htaccess“ steht für „Hypertext-Zugriff“. Dieser Name beschreibt, wofür die Datei verwendet wurde, als sie erstmals entwickelt wurde. Kurz gesagt, es wurde verwendet, um den Benutzerzugriff auf bestimmte Dateien und Verzeichnisse zu steuern. Die Dinge haben sich weiterentwickelt, seit .htaccess zum ersten Mal auf der Bildfläche erschienen ist, und es wird jetzt auf verschiedene Arten in WordPress verwendet, die wir uns im Detail ansehen werden.

Die .htaccess ist eine WordPress-Kernkonfigurationsdatei, die verwendet wird, um bestimmte Einstellungen des Apache-Webservers (Apache ist eine Software, die häufig auf Webservern verwendet wird) zu überschreiben oder um verschiedene andere Funktionen zu implementieren, die sich auf die Funktionsweise Ihrer Website auswirken. Es ist in allen WordPress-Installationen enthalten, direkt nachdem Sie Permalinks aktiviert haben, und befindet sich normalerweise im Stammverzeichnis der Installation. Sie können es anzeigen oder bearbeiten, indem Sie über einen FTP-Client wie FileZilla oder WinSCP auf die Installationsdateien zugreifen.

Hinweis: Stellen Sie sicher, dass die Einstellungen Ihres FTP-Clients so geändert sind, dass versteckte Dateien angezeigt werden.

Standardmäßig sieht der Inhalt einer .htaccess-Datei einer WordPress-Website, sobald Permalinks aktiviert sind, so aus:

 # 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

Falls Sie es noch nicht wissen, das „#“ am Anfang einer Zeile ist ein Kommentar. # BEGIN WordPress und # END WordPress Kommentarzeilen werden verwendet, damit der Inhalt organisiert bleibt, wenn später weitere Regeln von Plugins oder von Ihnen selbst angewendet werden. Alle zukünftigen Ergänzungen zur .htaccess-Datei sollten außerhalb dieser Zeilen platziert werden.

Die .htaccess-Datei wird hauptsächlich in WordPress verwendet, um die Permalinks auf Ihrer Website zu steuern. Es kann jedoch auch als leistungsstarkes Tool für verschiedene andere Aufgaben verwendet werden, z. B. um den Zugriff auf bestimmte Dateien zu kontrollieren, die Sicherheit und Leistung zu verbessern, benutzerdefinierte Header zu senden und vieles mehr.

Hinweis: Es ist wichtig, dass alle Änderungen, die an der .htaccess-Datei Ihrer Website vorgenommen werden, sorgfältig vorgenommen werden. Selbst ein einfacher Tippfehler in dieser Datei kann zum Absturz Ihrer Website führen. Wenn Sie sich also nicht sicher sind, welche Änderungen Sie vornehmen, sollten Sie diese idealerweise auf einem Staging-Server testen, bevor Sie sie dann auf Ihrer Live-Website anwenden.

Dinge, die Sie mit Ihrer .htaccess-Datei machen können

Sehen wir uns also an, wie Sie mit Hilfe der .htaccess-Datei mehr Kontrolle über Ihre Website erlangen können.

Umleitung zwischen „www“ und „nicht-www“

Eine übliche Verwendung der .htaccess-Datei ist das Setzen einer permanenten Weiterleitung von Ihrer „nackten Domain“ (nicht-www-Version) zu ihrer www-Version oder umgekehrt.

Bevor Sie fortfahren, vergewissern Sie sich, dass beide Domänen in Ihrem DNS so eingestellt sind, dass sie zur IP-Adresse des richtigen Servers aufgelöst werden.

Überprüfen Sie außerdem in Ihrem WordPress-Adminbereich, ob die nackte Domain als primär festgelegt ist.

URL der Einstellungsseite

Sie können die www-Domäne auf die nackte umleiten, indem Sie den folgenden Code in die .htaccess-Datei unterhalb des Standardinhalts einfügen.

 RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mycompanyname\.com [NC] RewriteRule ^(.*)$ http://mycompanyname.com/$1 [L,R=301]

Um genau das Gegenteil zu erreichen (wenn das www als primär eingestellt ist) und von einer „Nicht-www“-Domain auf „www“ umzuleiten, müssten Sie diesen Code einfügen:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC] RewriteRule ^(.*)$ http://www.mycompanyname.com/$1 [R=301,L]

Wenn Sie mit den im Code verwendeten regulären Ausdrücken nicht vertraut sind und mehr über die Syntax erfahren möchten, nehmen Sie sich ruhig die Zeit und lesen Sie mehr über REGEX. HT Access Cheat Sheet ist ein weiteres sehr nützliches Tool

301-Weiterleitung (permanente Weiterleitung)

Eine 301-Weiterleitung teilt Suchmaschinen mit, dass eine URL dauerhaft durch eine andere ersetzt wurde, und leitet einen Benutzer zu diesem Besucher zu einer neuen (richtigen!) URL weiter. .

Hier ist das Stück Code, das, wenn es in eine .htaccess-Datei eingefügt wird, den Zweck erfüllt:

 RewriteEngine on RewriteCond %{HTTP_HOST} ^mycompanyname.com [NC,OR] RewriteCond %{HTTP_HOST} ^www.mycompanyname.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301,NC]

Im obigen Beispiel haben wir Benutzer von der Website „mycompanyname.com“ zu „example.com“ umgeleitet. Natürlich möchten Sie diese Abschnitte durch Ihre eigenen URLs ersetzen.

Dies gilt auch für alle Pfade unter der Domäne. Das bedeutet, dass beispielsweise mycompanyname.com/new.html zu example.com/new.html umgeleitet wird

302-Weiterleitung (temporäre Weiterleitung)

Wenn ein Inhalt vorübergehend an einen anderen Ort verschoben wird, wird eine 302-Umleitung verwendet. Die Syntax ist dieselbe wie in 301. Zum Beispiel:

 Redirect 302 /old.html http//www.mycompanyname.com/new.html

Aus praktischer Sicht ist das Ergebnis genau das gleiche, aber mit einem wichtigen Unterschied. Mit einer 301-Weiterleitung wird den Suchmaschinen mitgeteilt, dass die Seite nicht mehr online ist, und dies ermutigt die Suchmaschinen, diese Seite aus den Suchergebnissen zu entfernen. Bei einer 302-Weiterleitung wird die ursprüngliche URL weiterhin von Google gecrawlt und statt der neuen URL weiter indexiert. Daher ist es die ideale Lösung für eine Umleitung, wenn Sie nur vorübergehend zu alternativen Inhalten umleiten möchten.

Auf HTTPS zwingen

Die Sicherung Ihrer Website mit einem SSL-Zertifikat ist heutzutage sehr wichtig. Websites, die dies nicht tun, zeigen jetzt eine Warnung in der Browserleiste an, die das Vertrauen in Ihre Website untergraben kann. Darüber hinaus bestraft Google tatsächlich Websites, die keine Inhalte über HTTPS bereitstellen, und als solche könnten Ihre Suchrankings darunter leiden.

Selbst wenn Sie ein SSL-Zertifikat auf Ihrer Website installieren, können Sie immer noch feststellen, dass Benutzer die Nicht-HTTPS-Version Ihrer Website besuchen können. Wenn sie dies tun, erhalten sie weiterhin die Warnung in ihrem Browser, obwohl Sie ein SSL-Zertifikat installiert haben. Um dies zu verhindern, müssen Sie den gesamten Datenverkehr von der unsicheren HTTP-Version zur sicheren HTTPS-Version zwingen. Dies ist ganz einfach, indem Sie Ihre .htaccess-Datei verwenden, indem Sie den folgenden Code hinzufügen:

 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Blockieren Sie IP-Adressen

Wenn Sie Spam-Verkehr erhalten oder Ihre Website unter Missbrauchs-/Hacking-Versuchen von bestimmten IP-Adressen leidet, können Sie mithilfe Ihrer .htaccess-Datei Maßnahmen ergreifen, indem Sie den Datenverkehr von dieser IP-Adresse blockieren, indem Sie den folgenden Code in Ihrer .htaccess-Datei verwenden.

 Deny from 94.66.58.135

Wenn Sie erfahren möchten, wie Sie eine IP-Adresse auf andere Weise blockieren können, lesen Sie bitte diese Anleitung.

Bild-Hotlinking verhindern

Beim Bild-Hotlinking bettet jemand ein Bild auf Ihrer Website in seine eigene ein. Dies kann problematisch sein (nicht nur aus urheberrechtlicher Sicht), da Ihr Server möglicherweise Überstunden machen muss, um Bilder auf der Website einer anderen Person bereitzustellen. Sie können dies verhindern, indem Sie die .htaccess-Datei verwenden, um jemanden daran zu hindern, Ihre Bilder in seine Website einzubetten, mit dem folgenden Code:

 RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC] RewriteRule \.(jpg|jpeg|png|gif)$ - [F]

Vergessen Sie nicht, „mycompanyname.com“ durch die URL Ihrer Website zu ersetzen!

Dieser Code blockiert ALLE Websites am Hotlinking von Bildern auf Ihrer Website. Da Sie Suchmaschinen nicht davon abhalten möchten, Bilder per Hotlink zu verlinken, müssen Sie diese manuell auf die Whitelist setzen. Der Abschnitt des Codes, der dies erreicht, ist dieser Teil hier:

 RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mycompanyname.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com [NC]

Sie können natürlich auch andere Websites hinzufügen, die Sie auf die Whitelist setzen möchten. Schließlich gibt die letzte Zeile im Code ( RewriteRule .(jpg|jpeg|png|gif)$ - [F] ) vor, welche Medientypen blockiert werden.

Plugin- und Theme-Dateien schützen

Plugin- und Theme-PHP-Dateien können manchmal das Ziel von Hackern sein, die versuchen, bösartigen Code in sie einzuschleusen. Sie können Ihre .htaccess-Datei verwenden, um den Zugriff auf diese Dateien zu verhindern, indem Sie den folgenden Code verwenden:

 RewriteCond %{REQUEST_URI} !^/wp-content/plugins/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/plugins/directory/to/exclude/ RewriteRule wp-content/plugins/(.*\.php)$ - [R=404,L] RewriteCond %{REQUEST_URI} !^/wp-content/themes/file/to/exclude\.php RewriteCond %{REQUEST_URI} !^/wp-content/themes/directory/to/exclude/ RewriteRule wp-content/themes/(.*\.php)$ - [R=404,L]

Schützen Sie WordPress Core-Dateien

Es wird dringend empfohlen, einige WordPress-Kerndateien für Benutzer ohne Administratorrechte unzugänglich zu machen. Dies ist etwas, worum sich die meisten Hosting-Anbieter für Sie kümmern, aber es ist nicht immer der Fall. Wenn Sie den Zugriff auf sensible WordPress-Dateien verhindern möchten, können Sie den folgenden Code in Ihrer .htaccess-Datei verwenden:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>

Verhindern Sie, dass schädliche Bots Ihre Website durchsuchen

Bots sind im Grunde automatisierte Webskripte, die täglich Millionen von Websites scannen können. Google verwendet Bots, um Websites zu scannen, und verwendet die Daten aus diesen Scans, um seine umfangreichen Suchdatenbanken zu aktualisieren. Hoffentlich ist ein Google-Bot völlig harmlos! Es gibt jedoch andere Bots, mit denen Sie Ihre Website möglicherweise nicht scannen möchten. Einige dieser "bösen" Bots tun möglicherweise nichts anderes, als nur unnötige Serverbandbreite zu verbrauchen, während andere möglicherweise aktiv nach ausnutzbaren Schwachstellen auf Ihrer Website suchen. Ihre .htaccess-Datei kann verwendet werden, um diese „bösen“ Bots zu blockieren.

Das erste, was Sie herausfinden müssen, ist, welche Bots Sie blockieren möchten. Sie wissen es vielleicht bereits, aber wenn nicht, können Sie sich eine aktualisierte Liste von Bots auf der schwarzen Liste ansehen, die als verdächtig gelten. Wenn Sie Ihre Liste haben, können Sie sie wie folgt zu Ihrer .htaccess-Datei hinzufügen:

 #Block bad bods requests SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR] SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR] SetEnvIfNoCase user-Agent ^Zeus [NC]

Nachdem Sie Ihre Änderungen gespeichert haben, erhalten alle Bots auf der Liste, die jetzt Ihre Website besuchen, eine 403 Forbidden-Seite.

Schützen Sie wp-config.php

Es wird allgemein empfohlen, den Zugriff auf die Datei wp-config.php einzuschränken, da sie die Zugangsdaten für die Datenbank enthält.

Um dies über .htaccess zu tun, kopieren Sie einfach die folgenden Zeilen und fügen Sie sie in Ihre .htaccess-Datei ein:

 <files wp-config.php>order allow,denydeny from all</files>

Deaktivieren Sie die PHP-Ausführung

Eine sehr effiziente Möglichkeit, sich vor Hack-Versuchen zu schützen, besteht darin, die Ausführung von PHP in bestimmten Verzeichnissen zu verhindern, in denen es nicht benötigt wird. Zum Beispiel sind die Verzeichnisse /wp-includes/ und /wp-content/uploads/ beliebte Orte, die von Hackern verwendet werden, um Code zu platzieren, der unbefugten Zugriff auf den Server ermöglicht (bekannt als Backdoor-Dateien). Das Deaktivieren der PHP-Ausführung in diesen Verzeichnissen löscht diese Dateien nicht, sondern stoppt stattdessen die Ausführung ihres Codes. Fügen Sie dazu Ihrer .htaccess-Datei den folgenden Code hinzu.

 <Files *.php>deny from all</Files>

Sie werden auch feststellen, dass viele Hosting-Anbieter, einschließlich Pressidium, die PHP-Ausführung in diesen Verzeichnissen bereits standardmäßig deaktiviert haben, um das Sicherheitsniveau für ihre Kunden zu erhöhen.

Deaktivieren Sie den XML-RPC-Zugriff

Es ist ein häufiges Problem, das oft von Support-Teams bei Hosting-Unternehmen gesehen wird, wenn eine WordPress-Installation Tausende von „POST /xmlrpc.php HTTP/1.1“-Anfragen erhält, die oft mit einem Angriff von einer einzelnen oder mehreren IP-Adressen zusammenhängen. Eine Lösung hierfür ist das Deaktivieren von XML-RPC.

Um XML-RPC für Ihre Website zu deaktivieren, fügen Sie diese Codezeilen zu Ihrer .htaccess-Datei hinzu:

 # Block WordPress xmlrpc.php requests <Files xmlrpc.php> order deny,allow deny from all </Files> # END protect xmlrpc.php

Beachten Sie, dass xmlrpc.php erforderlich ist, wenn Sie Ihre Inhalte über mobile Apps oder Remoteverbindungen aktualisieren. Wenn Sie also erwägen, es dauerhaft zu deaktivieren, stellen Sie sicher, dass es für Ihre Arbeit nicht benötigt wird.

Erzwingt das Herunterladen von Dateien

Als Website-Benutzer kann es sehr ärgerlich sein, dass, wenn Sie eine Datei von einer Website herunterladen möchten (z. B. ein PDF), die Datei stattdessen im Browserfenster geöffnet wird. Wenn Sie Dateien auf Ihrer Website haben, die Ihren Benutzern als herunterladbare Elemente bereitgestellt werden, können Sie Ihre .htaccess-Datei bearbeiten und eine Codezeile hinzufügen, die erzwingen kann, dass bestimmte Dateitypen heruntergeladen und nicht direkt im Browser angezeigt werden. Sie sehen diesen Code unten zusammen mit einigen Beispielen für Dateitypen, die Benutzer direkt herunterladen können sollen.

 AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

Senden Sie benutzerdefinierte HTTP-Header

Fortgeschrittene Benutzer möchten vielleicht in der Lage sein, Kunden-HTTP-Header zu senden, indem sie die Header-Direktive von Apache nutzen. Fügen Sie dazu Ihrer .htaccess-Datei den folgenden Code hinzu.

 Header add my-custom-header "my custom header value"

Das obige Beispiel würde Apache anweisen, für jede Anfrage an den Server einen Header namens „my-custom-header“ hinzuzufügen. Wenn wir dieses Update implementieren und dann unseren Netzwerk-Tab in den Tools unseres Browsers überprüfen, können wir seine Antwort wie unten gezeigt bestätigen.

mein benutzerdefinierter Header

Diese Technik wird sehr häufig zum Hinzufügen von Cache- und Sicherheitsheadern oder zum Hinzufügen eines Sprachzeichensatzes verwendet. Werfen Sie einen Blick auf diesen Artikel für einige beliebte Anwendungen. In dieser Liste finden Sie auch eine detaillierte Liste von Headern, mit denen Sie experimentieren können.

Fazit

Hoffentlich hat Ihnen dieser Artikel einige Einblicke in die Dinge gegeben, die mit der .htaccess-Datei erreicht werden können. Sicher, viele dieser Dinge können durch die Verwendung eines Plugins erreicht werden, aber es ist immer hilfreich zu verstehen, was genau „unter der Haube“ vor sich geht, besonders wenn ein Plugin nicht so funktioniert, wie Sie es erwarten. Zu beherrschen, wie man die .htaccess-Datei bearbeitet, anstatt sich auf ein Plugin zu verlassen, hilft auch, Ihre WordPress-Expertise zu verbessern … und das ist immer eine gute Sache!