15 Nützliche .htaccess Snippets für Ihre WordPress Site
Eine gut konfigurierte .htaccess-Datei ist entscheidend, wenn Sie die Sicherheit erhöhen und Schwachstellen auf Ihrer WordPress-Website reduzieren möchten. Das Hauptziel beim Erstellen einer benutzerdefinierten .htaccess-Datei besteht normalerweise darin, zu verhindern, dass Ihre Website gehackt wird, aber es ist auch eine hervorragende Möglichkeit, um Weiterleitungen zu verwalten und Cache-bezogene Aufgaben zu verwalten.
.htaccess ist eine Konfigurationsdatei, die auf Apache-Webservern verwendet wird. Die meisten WordPress-Sites laufen auf einem Apache-Server, obwohl ein kleiner Teil von Nginx betrieben wird . In diesem Artikel finden Sie eine Sammlung von .htaccess-Code-Snippets, von denen Sie die meisten zum Sichern Ihrer Website verwenden können, während der Rest andere nützliche Funktionen implementiert.
Vergessen Sie nicht, die .htaccess-Datei vor der Bearbeitung zu sichern, damit Sie immer zur vorherigen Version zurückkehren können, wenn etwas schief geht.
Und wenn Sie jemand sind, der Konfigurationsdateien lieber nicht anfasst, empfehle ich Ihnen das BulletProof Security Plugin, das das zuverlässigste (und wahrscheinlich das älteste) kostenlose .htaccess Sicherheits-Plugin auf dem Markt ist.
Erstellen Sie den Standard-WP .htaccess
.htaccess funktioniert pro Verzeichnis, was bedeutet, dass jedes Verzeichnis seine eigene .htaccess-Datei haben kann. Es kann leicht passieren, dass Ihre WordPress-Seite noch keine .htaccess-Datei hat . Wenn Sie in Ihrem Stammverzeichnis keine .htaccess-Datei finden, erstellen Sie eine leere Textdatei und benennen Sie sie in .htaccess
.
Im Folgenden finden Sie den Standard .htaccess, den WordPress verwendet. Wann immer Sie diesen Code benötigen, können Sie ihn schnell im WordPress Codex nachschlagen. Beachten Sie, dass es für WP Multisite einen anderen .htaccess gibt.
# BEGIN WordPressRewriteEngine auf RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule. /index.php [L] # ENDE WordPress
Die mit #
beginnenden Zeilen sind Kommentare. Bearbeiten Sie nichts zwischen den Zeilen # BEGIN WordPress
und # END WordPress
. Fügen Sie unter diesen Standardregeln Ihre benutzerdefinierten .htaccess- Regeln hinzu .
Alle Code-Snippets, die Sie in diesem Artikel finden können, werden in die Core-.htaccess-Datei in Ihrem Stammverzeichnis verschoben.
1. Verweigern Sie den Zugriff auf alle .htaccess-Dateien
Der folgende Code verweigert den Zugriff auf alle .htaccess-Dateien, die Sie in Ihrem WordPress installiert haben. Auf diese Weise können Sie verhindern, dass Benutzer Ihre Webserverkonfigurationen sehen .
# Verweigert den Zugriff auf alle .htaccess-DateienOrder Allow, Deny Deny von allen Alle zufriedenstellen
2. Schützen Sie Ihre WP-Konfiguration
Die Datei wp-config.php
enthält alle Ihre WP-Konfigurationen, einschließlich Ihrer Datenbankanmeldung und Ihres Kennworts. Du kannst es entweder von allen ablehnen oder Admins erlauben, darauf zuzugreifen .
Wenn Sie den letzten Kommentar aus der Zeile " # Allow from xx.xx.xx.xxx
(entfernen Sie #
vom Anfang der Zeile) und fügen Sie die IP-Adresse des xx.xx.xx.xxx
anstelle von xx.xx.xx.xxx
.
# Schützt wp-configOrder Allow, Deny # Zulassen von xx.xx.xx.xxx # Zulassen von yy.yy.yy.yyy Deny von allen
3. Verhindern Sie den DDoS-Angriff auf XML-RPC
WordPress unterstützt standardmäßig XML-RPC, eine Schnittstelle, die Remote-Publishing ermöglicht. Obwohl es ein großartiges Feature ist, ist es auch eine der größten Sicherheitslücken von WP, da Hacker es für DDoS-Angriffe ausnutzen können .
Wenn Sie diese Funktion nicht verwenden möchten, sollten Sie sie deaktivieren . Genau wie zuvor können Sie Ausnahmen hinzufügen, indem # Allow from xx.xx.xx.xxx
Zeile # Allow from xx.xx.xx.xxx
und die IPs Ihrer # Allow from xx.xx.xx.xxx
hinzufügen.
# Schützt XML-RPC, verhindert DDoS-AngriffeOrder Deny, Allow # Allow von xx.xx.xx.xxx # Allow von yy.yy.yy.yyy Deny von allen
4. Schützen Sie Ihren Admin-Bereich
Es ist auch eine gute Idee, den Admin-Bereich zu schützen, indem Sie nur Administratoren Zugriff gewähren. Vergessen Sie nicht, mindestens eine "Zulassen" -Ausnahme hinzuzufügen, sonst können Sie überhaupt nicht auf Ihren Administrator zugreifen.
# Schützt Admin-Bereich durch IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "WordPress Admin-Zugriffskontrolle" AuthType BasicAuftrag verweigern, Zulassen von allen verweigern Zulassen von xx.xx.xx.xxx Zulassen von yy.yy.yy.yyy
5. Verhindern Sie die Verzeichnisliste
Die meisten WordPress-Sites deaktivieren die Verzeichnisliste nicht, was bedeutet, dass jeder seine Ordner und Dateien durchsuchen kann, einschließlich Medien-Uploads und Plugin-Dateien. Es ist unnötig zu sagen, dass dies eine große Sicherheitslücke ist.
Im Folgenden sehen Sie, wie eine typische WordPress-Verzeichnisliste aussieht .
Glücklicherweise benötigen Sie nur eine Codezeile, um diese Funktion zu blockieren. Dieses Code-Snippet gibt eine Fehlermeldung 403 an jeden zurück, der auf Ihre Verzeichnisse zugreifen möchte.# Verhindert Verzeichnislistenoptionen - Indizes
6. Verhindern Sie die Aufzählung des Benutzernamens
Wenn WP-Permalinks aktiviert sind, ist es sehr einfach, Benutzernamen mit den Autorenarchiven aufzulisten. Die angezeigten Benutzernamen (einschließlich des Benutzernamens des Administrators) können dann in Brute-Force-Angriffen verwendet werden .
Fügen Sie den folgenden Code in Ihre .htaccess-Datei ein, um die Aufzählung des Benutzernamens zu verhindern .
# Verhindert die Aufzählung des Benutzernamens RewriteCond% {QUERY_STRING} author = d RewriteRule ^ /? [L, R = 301]
7. Blockieren Sie Spammer und Bots
Manchmal möchten Sie möglicherweise den Zugriff von bestimmten IP-Adressen einschränken . Dieses Code-Snippet bietet eine einfache Möglichkeit, Spammer und Bots, die Sie bereits kennen, zu blockieren.
# Blockiert Spammer und BotsOrder Allow, Deny Deny von xx.xx.xx.xxx Deny from yy.yy.yy.yyy Erlaube von allen
8. Verhindern Sie die Bildhotlinking
Obwohl keine Sicherheitsbedrohung vorliegt, ist die Bild-Hotlinking-Funktion immer noch eine lästige Angelegenheit. Menschen benutzen deine Bilder nicht nur ohne deine Erlaubnis, sie tun es sogar auf deine Kosten. Mit diesen wenigen Codezeilen können Sie Ihre Website vor der Bildhotlink-Funktion schützen.
# Verhindert Bild-Hotlinking RewriteEngine auf RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www \.)? Yourwebsite.com [NC] RewriteCond% {HTTP_REFERER}! ^ Http ( s)?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jp? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Beschränken Sie den direkten Zugriff auf PHP-Plug-ins und -Themen
Es kann gefährlich sein, wenn jemand Ihre Plugin- und Themendateien direkt aufruft, egal ob es versehentlich oder durch einen böswilligen Angreifer passiert. Dieses Code-Snippet stammt von der Acunetix Website Security Company ; Sie können mehr über diese Sicherheitsanfälligkeit in ihrem Blogpost lesen.
# Beschränkt den Zugriff auf PHP-Dateien aus Plugin- und Theme-Verzeichnissen RewriteCond% {REQUEST_URI}! ^ / Wp-content / plugins / file / zu / exclude \ .php RewriteCond% {REQUEST_URI}! ^ / Wp-content / plugins / directory / to / exclude / RewriteRule wp-Inhalt / plugins / (. * \. php) $ - [R = 404, L] RewriteCond% {REQUEST_URI}! ^ / wp-Inhalt / themes / file / to / exclude \ .php RewriteCond% {REQUEST_URI}! ^ / Wp-content / themes / Verzeichnis / to / exclude / RewriteRule wp-Inhalt / Themes / (. * \. Php) $ - [R = 404, L]
10. Richten Sie permanente Weiterleitungen ein
Sie können permanente Weiterleitungen mit .htaccess leicht handhaben . Zuerst müssen Sie die alte URL hinzufügen und dann der neuen URL folgen, die auf die Seite verweist, auf die Sie den Benutzer umleiten möchten.
# Permanente Weiterleitungen Redirect 301 / oldurl1 / http://yoursite.com/newurl1 Redirect 301 / oldurl2 / http://yoursite.com/newurl2
11. Senden Sie Besucher an eine Wartungsseite
Wir haben hier ausführlich über diese Technik geschrieben. Sie benötigen eine separate Wartungsseite (im Beispiel " maintenance.html
), damit diese .htaccess-Regel funktioniert. Dieser Code versetzt Ihre WordPress-Site in den Wartungsmodus .
# Leitet zur Wartungsseite umRewriteEngine auf RewriteCond% {REMOTE_ADDR}! ^ 123 \ .456 \ .789 \ .000 RewriteCond% {REQUEST_URI}! /Wartung.html$ [NC] RewriteCond% {REQUEST_URI}! \. (Jpe? G? | Png | gif ) [NC] RewriteRule. * /Wartung.html [R = 503, L]
12. Beschränken Sie den Zugriff auf WP-Includes
Der Ordner /wp-includes/
enthält die wichtigsten WordPress-Dateien, die für das Funktionieren des CMS erforderlich sind. Es gibt keine Inhalte, Plugins, Designs oder irgendetwas anderes, auf das ein Benutzer hier zugreifen möchte. Um die Sicherheit zu erhöhen, ist es am besten, alle Zugriffe darauf zu beschränken .
# Blockiert alle wp-includes Ordner und DateienRewriteEngine auf RewriteBase / RewriteRule ^ wp-admin / enthält / - [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]
13. Block Cross-Site Scripting (XSS)
Das folgende Code-Snippet stammt von WP Mix und schützt Ihre Site vor einigen üblichen XSS-Angriffen, namentlich Skript-Injektionen und Versuchen, globale und Anfragevariablen zu ändern.
# Blockiert einige XSS-AngriffeRewriteCond% {QUERY_STRING} (\ |% 3E) [NC, ODER] RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0, 2}) [OR] RewriteCond% {QUERY_STRING } _REQUEST (= | \ [|% [0-9A-Z] {0, 2}) RewriteRule. * Index.php [F, L]
14. Aktivieren Sie das Browser-Caching
Wie bereits erwähnt, ist .htaccess nicht nur aus Sicherheitsgründen und Umleitungen gut, sondern kann Ihnen auch helfen , den Cache zu verwalten . Das folgende Code-Snippet stammt von Elegant Themes und ermöglicht Browser-Caching, indem es Besuchern ermöglicht , bestimmte Arten von Dateien zu speichern, damit sie sie beim nächsten Besuch nicht erneut herunterladen müssen.
# Aktiviert Browser-CachingExpiresActive auf ExpiresByType Bild / jpg "Zugriff 1 Jahr" ExpiresByType Bild / JPEG "Zugriff 1 Jahr" ExpiresByType Bild / GIF "Zugriff 1 Jahr" ExpiresByType Bild / Png "Zugriff 1 Jahr" ExpiresByType Text / CSS "Zugriff 1 Monat" ExpiresByType Anwendung / pdf "Zugriff 1 Monat" ExpiresByType Text / x-javascript "Zugriff 1 Monat" ExpiresByType Anwendung / x-shockwave-flash "Zugriff 1 Monat" ExpiresByType Bild / x-Symbol "Zugriff 1 Jahr" ExpiresDefault "Zugriff 2 Tage"
15. Richten Sie benutzerdefinierte Fehlerseiten ein
Sie können .htaccess verwenden, um benutzerdefinierte Fehlerseiten auf Ihrer WordPress-Site einzurichten. Damit diese Methode funktioniert, müssen Sie auch die benutzerdefinierten Fehlerseiten ( custom-403.html
, custom-404.html
im Beispiel) custom-404.html
und sie in Ihren Stammordner hochladen .
Sie können eine benutzerdefinierte Fehlerseite für jeden beliebigen HTTP-Fehlerstatuscode (4XX- und 5XX-Statuscodes) einrichten.
# Richtet eigene Fehlerseiten ein ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html
Hier sind die 10 Coding-Initiativen, die beweisen, dass Mädchen auch Code schreiben können
Eine der größten Unterhaltungen im Cyberspace ist das Verhältnis von Frauen in der Technologie. Das Problem war nicht, dass es nicht große Frauen in der Technik gibt, aber dass es nicht genug von ihnen gibt. Und wie die Diversity-Berichte von jedem Tech-Giganten zeigen, braucht das Ungleichgewicht einige Korrekturen. Go
Polygone - Der Löffel, den dein Bäckerfreund liebt
Wenn es ums Backen geht, ist eine genaue Messung der Zutaten entscheidend für den Erfolg des Rezepts. Dies würde eines von zwei Dingen bedeuten: Sie könnten eine Menge Messlöffel auf dem Backtisch haben, oder Sie müssen eine Menge von sich wiederholenden Messungen durchführen. Wenn Sie das nicht versteht, ist Polygons ein Muss in Ihrer Küche. Polyg