15 Nützliche .htaccess-Ausschnitte für Ihre WordPress-Site
Ein ... haben gut konfigurierte .htaccess-Datei ist entscheidend, wenn Sie wollen Sicherheit erhöhen und Schwachstellen reduzieren auf Ihrer WordPress-Site. Normalerweise ist das Hauptziel der Erstellung eines benutzerdefinierte .htaccess-Datei verhindert, dass Ihre Website gehackt wird, ist aber auch eine hervorragende Möglichkeit, Umleitungen und Cache-bezogene Aufgaben auszuführen.
.htaccess ist ein Konfigurationsdatei wird auf Apache-Webservern verwendet. Die meisten WordPress-Sites auf einem Apache-Server ausführen, obwohl ein kleiner Teil ist bereitgestellt von Nginx. In diesem Artikel finden Sie eine Sammlung von .htaccess-Codeausschnitten, Die meisten davon können Sie zum Sichern Ihrer Website verwenden, während der Rest andere nützliche Funktionen implementiert.
Vergiss es nicht Sichern Sie die .htaccess-Datei bevor Sie es so bearbeiten, dass Sie es immer können Rückkehr zur vorherigen Version Wenn etwas schief läuft.
Und wenn Sie lieber keine Konfigurationsdateien berühren, empfehle ich Ihnen das BulletProof-Sicherheit Plugin, welches das zuverlässigste (und wahrscheinlich das älteste) ist kostenloses .htaccess-Sicherheits-Plugin auf dem Markt.
Erstellen Sie das Standard-WP .htaccess
.htaccess funktioniert auf a pro Verzeichnisbasis Dies bedeutet, dass jedes Verzeichnis eine eigene .htaccess-Datei haben kann. Es kann leicht passieren, dass Ihre WordPress-Site hat noch keine .htaccess-Datei. Wenn Sie keine .htaccess-Datei in Ihrem Stammverzeichnis finden Erstellen Sie eine leere Textdatei und nennen Sie es .htaccess
.
Unten finden Sie die Standardwert .htaccess WordPress verwendet. Wenn 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.
# BEGINN WordPressRewriteEngine On RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # END WordPress
Die Zeilen beginnen mit #
sind Kommentare. Bearbeiten Sie nichts zwischen den Zeilen # BEGINN WordPress
und # END WordPress
. Fügen Sie Ihre benutzerdefinierten .htaccess-Regeln hinzu unterhalb dieser Standardregeln.
Alle Codeausschnitte, die Sie in diesem Artikel finden können Gehen Sie zur Kerndatei .htaccess in Ihrem Stammverzeichnis gefunden.
1. Den Zugriff auf alle .htaccess-Dateien verweigern
Der Code unten verweigert den Zugriff auf alle .htaccess-Dateien, die Sie in WordPress installiert haben. Auf diese Weise können Sie verhindern, dass andere Personen Ihr sehen Webserver-Konfigurationen.
# Verweigert den Zugriff auf alle .htaccess-DateienOrder Allow, Deny Deny von allen Satisfy all
2. Schützen Sie Ihre WP-Konfiguration
Das wp-config.php
Datei enthält alle Ihre WP-Konfigurationen, einschließlich Ihres Datenbank-Login und Passworts. Sie können es entweder von allen abstreiten oder geben Sie den Admins die Erlaubnis, darauf zuzugreifen.
Wenn Sie sich für Letzteres entscheiden auskommentieren das # Zulassen von xx.xx.xx.xxx
Linie (entfernen #
vom Anfang der Zeile) und Geben Sie die IP-Adresse des Administrators ein anstelle von xx.xx.xx.xxx
.
# Schützt wp-configBestellen Zulassen, Ablehnen # Zulassen von xx.xx.xx.xxx # Zulassen von yy.yy.yy.yyy Ablehnen von allen
3. Verhindern Sie den XML-RPC-DDoS-Angriff
WordPress unterstützt XML-RPC Standardmäßig ist dies ein Schnittstelle, die Remote Publishing ermöglicht möglich. Obwohl dies eine großartige Funktion ist, ist es auch eine der größten Sicherheitsanfälligkeiten von WP, wie Hacker dies tun können nutzen Sie es für DDoS-Angriffe.
Wenn Sie diese Funktion nicht verwenden möchten, ist es besser, dies einfach zu tun Deaktiviere es. Genau wie vorher kannst du Ausnahmen hinzufügen, indem Sie auskommentieren das # Zulassen von xx.xx.xx.xxx
Zeile und Hinzufügen der IP-Adressen Ihrer Administratoren.
# Schützt XML-RPC und verhindert DDoS-AngriffBestellen Ablehnen, Zulassen # Zulassen von xx.xx.xx.xxx # Zulassen von yy.yy.yy.yyy Ablehnen von allen
4. Schützen Sie Ihren Admin-Bereich
Es ist auch eine gute Idee zu Schützen Sie den Admin-Bereich indem Sie nur Administratoren Zugriff gewähren. Vergiss das nicht füge mindestens eine hinzu “ermöglichen” Ausnahme Andernfalls können Sie überhaupt nicht auf Ihren Administrator zugreifen.
# Schützt den Admin-Bereich durch IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "WordPress Admin Access Control" AuthType BasicBestellen Ablehnen, Zulassen Ablehnen von allen Zulassen von xx.xx.xx.xxx Zulassen von yy.yy.yy.yyy
5. Verzeichnisliste verhindern
Die meisten WordPress-Sites deaktivieren die Verzeichnisliste nicht. Dies bedeutet, dass dies jeder kann Durchsuchen Sie ihre Ordner und Dateien, einschließlich Medien-Uploads und Plugin-Dateien. Es ist unnötig zu erwähnen, dass dies eine große Sicherheitslücke ist.
Unten sehen Sie, wie ein Eine typische WordPress-Verzeichnisliste sieht so aus.
Zum Glück brauchst du nur eine Codezeile um diese Funktion zu blockieren. Dieser Code-Ausschnitt wird eine 403-Fehlermeldung zurückgeben an alle, die auf Ihre Verzeichnisse zugreifen möchten.
# Verhindert Verzeichnisauflistung Optionen -Indexes
6. Verhindern Sie die Aufzählung von Benutzernamen
Wenn WP-Permalinks aktiviert sind, ist das ganz einfach Benutzernamen auflisten Verwenden der Autorenarchive. Die aufgedeckten Benutzernamen (einschließlich des Benutzernamens des Administrators) können dann verwendet werden Brute-Force-Angriffe.
Fügen Sie den folgenden Code in Ihre .htaccess-Datei ein verhindert die Aufzählung von Benutzernamen.
# Verhindert die Aufzählung von Benutzernamen. RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Blockieren Sie Spammer und Bots
Manchmal möchten Sie vielleicht Zugriff von bestimmten IP-Adressen aus einschränken. Dieses Code-Snippet bietet eine einfache Möglichkeit, Spammer und bereits bekannte Bots zu blockieren.
# Blockiert Spammer und BotsBestellen Erlauben, Verweigern Verweigern von xx.xx.xx.xxx Verweigern von yy.yy.yy.yyy Erlaube von allen
8. Verhindern Sie das Hotlinking von Bildern
Obwohl keine Sicherheitsbedrohung, Bildverknüpfung ist immer noch eine nervige Sache. Die Leute nicht nur Verwenden Sie Ihre Bilder ohne Ihre Erlaubnis aber sie tun es sogar auf Ihre Kosten. Mit diesen wenigen Codezeilen können Sie Ihre Website vor Image-Hotlinks schützen.
# Verhindert, dass Image RewriteEngine auf RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.?)? [RewriteCond% HTTP_REFERER! s)?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jpe? g | | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Beschränken Sie den direkten Zugriff auf Plugin- und Design-PHP-Dateien
Es kann gefährlich sein, wenn jemand ruft direkt Ihre Plugins und Themendateien auf, ob es zufällig geschieht oder von einem böswilligen Angreifer. Dieser Code-Ausschnitt kommt von der Acunetix Website-Sicherheitsfirma; Weitere Informationen zu dieser Sicherheitsanfälligkeit finden Sie in ihrem Blogeintrag.
# Beschränkt den Zugriff auf PHP-Dateien von Plugin- und Designverzeichnissen RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / auf / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / verzeichnis / / 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 / verzeichnis / to / exclude / RewriteRule wp-content / themes / (. * \. Php) $ - [R = 404, L]
10. Richten Sie permanente Weiterleitungen ein
Sie können leicht mit permanenten Weiterleitungen umgehen mit .htaccess. Zuerst müssen Sie das hinzufügen alte URL, dann dem folgen neue URL das verweist auf die Seite, zu der Sie den Benutzer umleiten möchten.
# Permanente Weiterleitungen Weiterleitung 301 / oldurl1 / http://yoursite.com/newurl1 Weiterleitung 301 / oldurl2 / http://yoursite.com/newurl2
11. Senden Sie die Besucher an eine Wartungsseite
Wir haben hier ausführlich über diese Technik geschrieben. Du brauchst ein separate Wartungsseite (maintenance.html
im Beispiel), damit diese .htaccess-Regel funktioniert. Dieser Code setzt Ihre WordPress-Site in den Wartungsmodus.
# Weiterleitung auf die WartungsseiteRewriteEngine auf RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] RewriteCond% REQUEST_URI! \. (Jpe? G? | Png | | png | | gif ) [NC] RewriteRule. * /Maintenance.html [R = 503, L]
12. Beschränken Sie den gesamten Zugriff auf WP-Includes
Das / wp-Includes /
Mappe enthält die wichtigsten WordPress-Dateien das ist notwendig, damit das CMS funktioniert. Es gibt keine Inhalte, Plugins, Designs oder irgendetwas anderes, auf das ein Benutzer hier zugreifen möchte. Um die Sicherheit zu härten, ist es daher am besten beschränken Sie den Zugriff darauf.
# Blockiert alle WP-Ordner und DateienRewriteEngine 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-include / theme-compat / - [F, L]
13. Cross-Site Scripting (XSS) blockieren
Das folgende Codeausschnitt stammt von WP Mix und schützt Ihre Site vor einige häufige XSS-Angriffe, nämlich Skriptinjektionen und Versuche, globale Variablen und Anforderungsvariablen zu ändern.
# Blockiert einige XSS-AngriffeRewriteCond% QUERY_STRING (\ |% 3E) [NC, OR] RewriteCond% QUERY_STRING GLOBALS (= | \ [| \% [0-9A-Z] 0,2) [ODER] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Aktivieren Sie das Browser-Caching
Wie ich bereits erwähnt habe, ist .htaccess nicht nur aus Sicherheitsgründen und für Weiterleitungen gut, sondern kann Ihnen auch helfen den Cache verwalten. Das folgende Code-Snippet stammt von Elegant Themes ermöglicht Browser-Caching indem es Besuchern ermöglicht, Speichern Sie bestimmte Arten von Dateien, Beim nächsten Besuch müssen sie sie also nicht erneut herunterladen.
# Ermöglicht das Browser-CachingExpiresActive Auf ExpiresByType image / jpg "Zugriff 1 Jahr" ExpiresByType Image / jpeg "Zugriff 1 Jahr" ExpiresByType Image / Gif "Zugriff 1 Jahr" ExpiresByType Image / 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-Icon "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 dies auch tun Erstellen Sie die benutzerdefinierten Fehlerseiten (custom-403.html
, custom-404.html
im Beispiel) und lade sie hoch in Ihren Stammordner.
Sie können eine benutzerdefinierte Fehlerseite für einrichten beliebiger HTTP-Fehlerstatuscode (4XX- und 5XX-Statuscodes) Sie möchten.
# Legt benutzerdefinierte Fehlerseiten fest ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html