Das muss unbedingt in deiner .htaccess stehen!

In diesem Artikel geht es um ein sehr technisches Thema, das ich dir aber natürlich einfach aufbereite: die tollen Möglichkeiten der .htaccess Datei. In dieser Datei können Konfigurationsanweisungen für deinen Webserver hinterlegt und auf ein gewisses Verzeichnis bezogene Regeln festgelegt werden.

Das heißt also, die in der .htaccess festgelegten Regeln gelten immer für das Verzeichnis, in der diese Datei liegt. Im Normalfall legt man die meisten Konfigurationen in der .htaccess Datei des Hauptverzeichnisses ab, da diese für diesen gesamten Ordner samt Unterordner gilt, wodurch WordPress .htaccess Regeln für den gesamten Blog übernimmt.

Ich werde dir in diesem Artikel einige coole Codeschnipsel zeigen, mit denen du deinen Blog ganz einfach schneller und sicherer machen kannst. Diese Codeschnipsel musst du in der .htaccess deines Hauptverzeichnisses einfügen.

In WordPress .htaccess Dateien richtig benutzen

Bevor es los geht, muss ich dir noch ein paar Kleinigkeiten zu dieser besonderen Datei erklären.

Die .htaccess ist eine sehr mächtige Datei mit der man sehr viel gutes aber auch schlechtes anstellen kann. Trägst du hier etwas falsches ein, kann das dazu führen, dass deine Website nicht mehr erreichbar ist.

Darum mache am besten ein komplettes WordPress Backup, bevor du loslegst!

Schutz der .htaccess

Bevor wir also loslegen, solltest du zunächst einmal die Dateiberechtigungen für die .htaccess festlegen. WordPress schlägt vor (und ich kann das nur bestätigen), die Berechtigung 644 zu hinterlegen.

Dafür loggst du dich mit deinem FTP Programm auf deinem Webserver ein, machst einen Rechtsklick auf die .htaccess Datei in deinem Hauptverzeichnis, und klickst im Anschluss auf „Dateiberechtigungen“ oder ähnliches. Nun gibst du als Berechtigung 644 ein, und sicherst damit die Datei vor Veränderungen von außen ab.

Standardinhalte

WordPress benötigt von Haus aus nur eine einzige Regel in der .htaccess um zu funktionieren. Diese Regel ist dafür da, dass man die URLs in WordPress ändern kann. Das braucht man beispielsweise, um sprechende URLs zu erstellen. Dieser Eintrag sollte also bereits in deiner .htaccess stehen, wenn nicht, füge ihn unbedingt ein:

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Bevor du Änderungen einfügst: Achtung!

Erstelle dir auf jeden Fall zunächst ein Backup der .htaccess. Das geht ganz einfach indem du per FTP die aktuelle Datei herunterlädst und auf deinem Computer speicherst. Sollte dann etwas schief gehen, kannst du einfach diese gespeicherte Datei wieder hochladen und die veränderte überschreiben. Schon läuft wieder alles rund.

Noch eine letzte Kleinigkeit bevor es endlich ans Werk geht:
Füge die Codeschnipsel entweder vor „#BEGIN WordPress“ ein oder hinter „#END WordPress“. Ich habe die Codeschnipsel jeweils am Anfang mit einer Zeile kommentiert, damit du den Überblick behalten kannst und weißt, welcher Code welche Auswirkungen hat. Kommentare beginnen immer mit einem # und werden von Browsern nicht interpretiert sondern dienen lediglich der Übersichtlichkeit.

Auch die .htaccess muss bei einem Seitenaufruf immer zunächst einmal von dem Browser geladen werden, achte also darauf, sie möglichst schlank zu halten und nur die Codes einzufügen, die du wirklich benötigst.

So, jetzt geht es aber los 🙂

WP-admin nur für ausgewählte IPs zulassen

Mit diesem Schnipsel kannst du die Login Seite für alle Nutzer, außer die von dir eingegebenen sperren. Logischerweise kannst du damit sehr effektiv verhindern, dass sich jemand ungewolltes an der Login Seite zu schaffen macht.

Das Ganze funktioniert nur, wenn du und die anderen Benutzer eine statische IP Adresse besitzen. Bei einer dynamischen IP wird bei jedem neuen Einwählen eine neue IP vergeben. Ist das bei dir oder deinen Benutzern der Fall, kannst du diesen Trick nicht anwenden.
Deine IP Adresse kannst du ganz einfach herausfinden, indem du auf ein Online-Tool wie beispielsweise www.meine-aktuelle-ip.de gehst.

In der .htaccess werden die IP Adressen der freizugebenden Nutzer eingetragen. Du musst also jeden hinzukommenden Nutzer nach seiner IP Adresse fragen, und diese mit in die .htaccess eintragen.

# Zugriff auf wp-admin nur für vorgegebene IPs
order deny,allow
deny from all
allow from IPAdresse1
allow from IPAdresse2

WP-config.php für alle sperren

Die wp-config.php Datei enthält deine Datenbankdaten, Zugangsdaten zu WordPress und weitere, sehr sensible Daten. Damit niemand einfach in die Datei reinschauen und sich an den Daten zu schaffen machen kann, kannst du sie über die .htaccess sperren.

# Verbietet allen den Zugang zur wp-config
 <files wp-config.php>
 order allow,deny
 deny from all
 </files>

Verhindere, dass deine Bilder genutzt werden

Sogenanntes Image Hotlinking wird immer wieder missbraucht. Das bedeutet, dass jemand eines deiner Bilder auf seiner Website einbaut, aber über deinen Server abruft. Dadurch entsteht zusätzlicher Traffic, was die Geschwindigkeit deines Blogs beeinträchtigen kann. Zudem sind viele Hostingpakete auf eine gewisse Menge an Traffic pro Monat begrenzt, wodurch du durch dieses Image Hotlinking Probleme bekommen kannst.

Mit diesem Codeschnipsel in der .htaccess kannst du einstellen, dass bei dem Versuch ein Bild über deinen Server einzubinden, stattdessen ein von dir vorgegebenes Bild angezeigt wird.

Achtung: Dieser Code sorgt in manchen Fällen dafür, dass Bilder in RSS Readern nicht mehr angezeigt werden. Wenn du RSS nicht anbietest oder auf die Bilder verzichten kannst, ist das kein Problem. In den anderen Fällen füge den Code einfach hinzu, und überprüfe, ob die Bilder nach wie vor angezeigt werden.

# Verhindert Image Hotlinking. Ersetze die letzte URL mit einem Bildlink.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?deinblog.de [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://deinbild.jpg [NC,R,L]

Browser Caching aktivieren

Jetzt gibt es zwischendurch einen kleinen Tipp zur Geschwindigkeitsoptimierung mit Hilfe der WordPress .htaccess Datei. Ich habe diesen und weitere Tipps bereits in dem Artikel „7 Tricks, wie du WordPress schneller machen kannst“ vorgestellt.

Dieser etwas längere Code aktiviert das sogenannte Browser Caching. Bei einem Seitenaufruf speichert ein Browser zunächst alle Dateien offline und zeigt sie dann an. Dadurch entsteht die Ladezeit einer Website. Durch das Browser Caching wird dem Browser erlaubt, bei dem nächsten Seitenaufruf einfach wieder diese bereits heruntergeladenen Dateien abzurufen, ohne sie erneut herunterzuladen.

Damit das funktioniert, wird den Browsern die maximal erlaubte Speicherdauer für verschiedene Dateitypen vorgegeben. Dadurch werden nach der vorgegebenen Zeit die Dateien neu geladen, falls Änderungen erfolgt sind.

# Browser Caching aktivieren
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"

GZIP Komprimierung aktivieren

Wordpress .htaccess GZIP aktivieren
Die GZIP Komprimierung reduziert die Ladezeit

Noch ein zweiter Tipp für die Geschwindigkeitsoptimierung deiner Website. Du kannst mit einem kurzen Codeschipsel die sogenannte GZIP Komprimierung aktivieren.

Möchtest du deine Website-Ladezeit optimieren, erfährst du hier alles über die Optimierung der Ladezeit mit WP Rocket.

GZIP ist ein Webstandard um Dateien zu komprimieren. Das kannst du dir vorstellen wie ein .zip oder .rar Archiv auf deinem Computer.
Die Dateien werden so stark es geht verkleinert und dann erst durch den Browser wieder entpackt. Dadurch wird dein Blog sehr viel effizienter und schneller geladen.

Gehe nach der Aktivierung auf checkgzipcompression.com und gib die URL deines Blogs ein. Du wirst nun sehen, ob GZIP aktiviert ist und was dadurch eingespart wird.

# Aktiviert GZIP Komprimierung
 <IfModule mod_deflate.c>
 SetOutputFilter DEFLATE
 </IfModule>

Zugriffe auf .htaccess verhindern

Zusätzlich zu der Einstellung der Dateiberechtigungen solltest du die .htaccess mit der Hilfe der .htaccess für Zugriffe von außen sperren. Klingt komisch, funktioniert aber 🙂

Wie schon gesagt, hat die .htaccess große Auswirkungen auf die Funktionsweise deines Blogs und kann einen Haufen Schaden anrichten. Aus diesem Grund sollte man alles dafür tun, sie so gut wie möglich zu schützen.

#Zugriffe auf .htaccess verhindern
 <files ~ "^.*\.([Hh][Tt][Aa])">
 order allow,deny
 deny from all
 satisfy all
 </files>

Bestimmte Nutzer ausschließen

Spammer loswerden und Hacker ausschließen, klingt doch super oder?
Ist es auch und vor allem geht es mit der .htaccess ganz einfach.

Bei den Spamkommentaren wird dir in WordPress direkt die IP Adresse angezeigt. Für Hackversuche ist es etwas komplizierter, aber trotzdem machbar an die IP Adresse zu kommen. Hierfür musst du entweder in die Logfiles deines Servers schauen oder mit einem Plugin wie iThemes Security arbeiten.

Die herausgefundenen IP Adressen kannst du dann alle in diesen Codeschnipsel in der .htaccess eintragen, wodurch sie keinen Zugriff mehr auf deinen Blog haben. Ersetze einfach die X mit der IP Adresse.

#Nutzer per IP ausschließen
 <Limit GET POST>
 order allow,deny
 deny from XXX.XXX.XX.X
 deny from XXX.XXX.XX.X
 allow from all
 </Limit>

301 Weiterleitungen

Wenn du deinen Blog auf eine andere Domain umziehst, komplette Artikel oder Seiten auf eine neue URL umstellst oder aus einem anderen Grund eine Weiterleitung erstellen musst, ist das in WordPress mit der .htaccess ganz einfach.

Eine 301 Weiterleitung (301 Redirect) sorgt dafür, dass Nutzer beim Anklicken eines Links, der auf eine alte Seite verweist, auf die neue Seite weitergeleitet wird. Das ist nicht nur für deine Nutzer sondern auch für Google äußerst wichtig, denn so verlierst du keine Kraft durch die Links auf deine Seite, die ohne die Weiterleitung ins Leere führen würden.

Hinter dem „Redirect 301“ trägst du zunächst die alte URL ein, machst dahinter ein Leerzeichen und setzt die neue URL dahinter.

#301 Weiterleitungen
Redirect 301 /alteseite.html http://neuewebsite.de/neueurl
Redirect 301 / http://neuewebsite.de/

Auslesen von Nutzernamen verhindern

Wusstest du, dass man deinen Nutzernamen ganz einfach herausfinden kann, indem man /?author=1 an deine Domain anhängt? Probiere es mal aus, WordPress leitet dich sofort auf die Autorenseite von Benutzer eins weiter. Dadurch können Hacker deinen Nutzernamen für den Login super einfach herausfinden.
Klar, damit kommen sie auch nicht weit, aber man sollte es Hackern so schwierig wie möglich machen.

Wenn du diesen Code in deiner .htaccess hast, wird bei der Eingabe von /?author=X die Startseite deines Blogs angezeigt.

# Verhindert das einfache Auslesen von Nutzernamen
 RewriteEngine On
 RewriteBase /
 RewriteCond %{QUERY_STRING} .*author=(.+.?) [NC]
 RewriteRule (.*) /blog/?author= [NC,L,R=301]

Hast du andere .htaccess Codes, mit denen du deinen Blog verbesserst? Kommentiere doch einfach und lass uns teilhaben 🙂


Jonas Tietgen

Dein WordPress Ninja mit 10+ Jahren Erfahrung, Gründer von WP Ninjas und SEO Nerd.

Jonas hilft Solopreneuren, ihre WordPress Websites selber überarbeiten, pflegen und optimieren zu können.

Schon seit er 14 ist, baut er Websites mit WordPress und arbeitet seit Jahren täglich mit WordPress. Dadurch hat er Erfahrung mit so ziemlich jedem Theme und Plugin, kennt WordPress auswendig und toppt das Ganze mit einer Liebe zu Webdesign (inklusive Webdesign-Studium) und SEO.

In über 120 Tutorials stellt er dir in seinem Blog sein gesamtes Wissen zur Verfügung, erweitert dein SEO-Wissen in seinem Search Effect Podcast, sowie dem Keyword-Magic-Workshop und unterstützt dich in Coachings und über seinen beliebten Mitgliederbereich.

Abseits von WordPress nerdet Jonas gerne über Gesundheit ab, macht viel Krafttraining und weiteren Sport und baut immer wieder spannende Website-Projekte wie bambuslife.de oder wattlife.de auf.


101 Gedanken zu „Das muss unbedingt in deiner .htaccess stehen!“

  1. Echt super Post mit vielen guten Tipps.
    Vor allem der letzte Tipp zum verbergen des Authors ist interessant und sinnvoll.

    Nach meinen Beobachtungen, ist das Angriffstelle Nr1. Bei WordPress.

    Antworten
  2. Hallo Jonas,

    klasse Beitrag, vielen Dank. Könntest du mir noch bitte erklären wie Ich in der .htaccess setzen kann, dass wenn Ich statt „https://123456.de/“ „https://123456.de//“ oder https://123456.de eingeben, dass dann eine Weiterleitung auf …de/ oder …de stattfindet. Was ist denn zu Empfehlen? Lieber mit trailingslash oder besser ohne? Danke vorab und gruß
    Sascha

    Antworten
  3. Hallo Jonas ein wirklich toller Artikel!

    Zu : Zugriffe auf htaccess verhindern. Wo genau gebe ich den Code welchen Du oben erwähnt hast ein? In die vorhandenen htaccess oder muss ich noch einmal eine neue anlegen?

    Ich möchte meine Login URL verändern. Der Login Bereich soll nicht mehr über domain…/wp-admin oder wp-login aufrufbar sein, sondern über z.B domain…/meinBereich.

    Ich habe den Login Bereich zusätzlich mit htacess Passwortbereich geschützt.

    Nun meine Frage: gibt es einen Code für die htaccess um die Login URL zu verändern?(Ich möchte kein Plugin hierfür nutzen).Wie würde dieser lauten?Und kannn ich den htacess Passwortschutz dann trotzdem noch benutzen?

    Danke:)Und einen schönen 3.Advent!!!

    Viele Grüße Merrit

    Antworten
    • Hey Merrit,

      die Codes gehören alle in die .htaccess in deinem Hauptverzeichnis. Dort darf es nur eine geben.
      Um die URL des Loginbereichs zu verschieben, kannst du den folgenden Code in die .htaccess einfügen:
      RewriteRule ^admin$ http://DEINE_SEITE.com/wp-login.php [NC,L]
      Dadurch erreichst du den Login über /admin

      Den Passwortschutz über die .htaccess kannst du weiterhin nutzen, musst natürlich aber den Pfad anpassen auf den er zugreift.

      Grüße
      Jonas

      Antworten
  4. Danke Jonas:)

    Wenn ich den Login Bereich über meinbereich aufrufen möchte, müsste ich dann anstatt admin im nachfolgenden Code meinbreich eingeben?

    RewriteRule ^admin$ http:// DEINE_SEITE.com/wp-login.php [NC,L]

    Danke!!

    Antworten
  5. Hallo Jonas ich bin es noch einmal.

    Ich habe dass mit dem Code: RewriteRule ^ meinbereich$ http:// DEINE_SEITE.com/wp-login.php [NC,L] ausprobiert.

    Ich kann mich jetzt über meinbereich einloggen.Jedoch ist die Login URL meinewebseite…/wp-admin immer noch aktiv, wie kann ich es erreichen, dass nur meinbereich als Login url funktioniert?

    Danke!

    Antworten
  6. Hi Jonas,ich hoffe Du hattest einen guten Start ins Neue Jahr!

    zu Deinem Blogeintrag:…… Bei den Spamkommentaren wird dir in WordPress direkt die IP Adresse angezeigt. Für Hackversuche ist es etwas komplizierter, aber trotzdem machbar an die IP Adresse zu kommen. Hierfür musst du entweder in die Logfiles deines Servers schauen ……

    Wo genau finde ich die Logfiles?
    In der Wordpress Installation über FTP ?

    Danke!

    Antworten
    • Hey Paul,

      Logfiles findest du in einem Ordner auf deinem Webspace. Je nach Hoster heißt der Ordner unterschiedlich, manchmal sind die Logfiles sogar deaktiviert.
      Schau mal nach einem Ordner namens „Usage“ oder „Logs“

      Grüße
      Jonas

      Antworten
  7. […] wieder Leute, die versuchen, es einem einfacher zu machen – wie hier mit Tipps, was in die .htaccess unbedingt rein […]

    Antworten
  8. hallo,
    ich wollte mal Fragen ob jemand hier mir helfen kann. Ich komme in meine WP Seite nicht rein.
    User und Pass stimmen aber die Anmeldung bleibt bei drehen und drehen… und passiert nichts
    http://www.archmorph.com
    Ich habe vieles probiert aber nichts hilft!
    MfG
    Federico

    Antworten
    • Hey,

      ich würde dir empfehlen erst mal die klassischen Schritte vorzunehmen und alle Plugins / das Theme über FTP zu deaktivieren. Vermutlich wird eines der Plugins dieses Problem verursachen.

      Grüße
      Jonas

      Antworten
  9. Hallo Jonas,

    „Im Normalfall legt man die meisten Konfigurationen in der .htaccess Datei des Hauptverzeichnisses ab, da diese für diesen gesamten Ordner samt Unterordner gilt, wodurch WordPress .htaccess Regeln für den gesamten Blog übernimmt.“
    –> welches ist das Hauptverzeichnis? (und ja, die Frage ist selbst mir fast ein bischen peinlich)

    Viele Grüße,
    Antje

    Antworten
      • danke für die schnelle Antwort… habe eben auch in einem anderem Artikel von dir gelesen, dass die htaccess automatisch erstellt wird bei der wp-installation – das hätte mir die Suche auch schon erleichtert ^^

        ich habe aber ein großes Verständnisproblem: mein Hoster ist allinkl, in der Anleitung für manuelle Installation steht, dass man nach dem WP hochladen die in den Unterordner wordpress entpackten Dateien in den meinedomain.de-ordner schieben soll, also /meinedomain.de/wordpress/ zu /meinedomain.de/ —> wenn ich das so mache, ist dann /meinedomain.de/ das Hauptverzeichnis? und was soll das bringen***? Zumal, und da komm ich nicht mit, am Ende der Installationsanleitung steht, dass nach der Installation von WP unter /meinedomain.de/wordpress/ eine neue Datei namens .htaccess erstellt werden soll, die leer sein und lediglich die Zugriffsberechtigung auf 666 gestellt werden soll

        *** (reicht es nicht, im wp backend unter Einstellungen die URL entsprechend zu setzen?)

        ich hoffe, ich habe meine Frage/n halbwegs verständlich formuliert

        Viele grüße,
        Antje

        PS: wenn ich wordpress im Unterordner wordpress lasse, kann man dann die config eine Ebene höher nach /meinedomain.de/ schieben und bringt das tatsächlich so wahnsinnig viel für die Sicherheit? oder „reicht“ es im Prinzip, deinen Sicherheitsempfehlungen hinsichtlich der htaccess zu folgen und ist damit sicher genug?

        PPS: ich bin ganz, ganz dankbar für deine Artikel. andererseits: je mehr man liest, auf umso mehr Dinge wird man gestoßen, von denen man noch nie was gehört hat. und manchmal wünscht man sich die Zeiten zurück, in denen man die 1-Click-Installation für ausreichend hielt

        Antworten
  10. Nachtrag: die Formulierung „htaccess-Datei des Hauptverzeichnisses“ … dh, für jedes Verzeichnis kann eine eigene htaccess erstellt werden? ist das sinnvoll? was ist, wenn sich Anweisungen widersprechen? wird dann auf die übergeordnete zurückgegriffen?

    Antworten
  11. Hey Antje,

    also für einen Laien ist die Verschiebung nicht ganz so einfach und kann einiges kaputt machen…
    Bei der Verschiebung geht es darum, dass du mehrere Installationen besser verwalten kannst und nicht durcheinander kommst.

    Grüße
    Jonas

    Antworten
  12. Hi,

    wenn man die Autorenseite per HTACCESS umleitet, betrifft das bei mir persönlich auch den Bulkeditor in Wordpress.
    Wenn ich normale Content-Seiten mit dem Bulkeditor bearbeiten möchte, werde ich auf die Hauptseite vor dem Speichern umgeleitet, da dieses Formular über GET arbeitet und automatisch das ?/&author=XX drin hat. Kann man das umgehen irgendwie? oder hat jemand dasselbe Phänomen beobachtet?

    Antworten
  13. okay, habs selbst gelöst. Wenn man die HTACCESS um eine weitere Condition erweitert und somit das Backend ausschließt funktioniert der Bulk-Editor wieder.

    `
    # Verhindert das einfache Auslesen von Nutzernamen
    RewriteEngine On
    RewriteBase /
    RewriteCond %{QUERY_STRING} .*author=(. .?) [NC]
    RewriteCond %{REQUEST_URI} !/wp-admin/
    RewriteRule (.*) /blog/?author= [NC,L,R=301]
    `

    Antworten
  14. Hilfe,
    ch habe die 301 Umleitung so eingegeben wie es hier steht. Jetzt habe ich einen Umleitungsfehler und komme nicht mehr auf meine Website. Warum musste ich eine 301 Umleitung legen, weil ich solchen Ratschlägen nachgehe wie dieser hier.
    Verdammt, was mach ich dich denn jetzt?

    Antworten
    • Scheisse geht mir jetzt auch so.
      ich glaube von ihm brauchen wir keine Antwort zu erwarten…
      aber kann jemand anders hier helfen?

      das folgende ist das einzige was bei mir drin steht
      # BEGIN WordPress
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ – [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      # END WordPress

      #301 Weiterleitungen
      Redirect 301 / http://paartherapie-hamburg.info

      und ich bekomme nur eine 403 fehler angezeigt… danke. 🙁

      Antworten
  15. Hey,

    als erstes öffnest du die .htaccess und entfernst den Code für die Umleitung. Dann läuft deine Seite wieder 🙂
    Wenn es einen Fehler verursacht, dann stimmt irgendwas an dem Code wohl nicht…

    Grüße
    Jonas

    Antworten
  16. Korrekt eingegeben, wie hier beschrieben, verursacht der Code kein Fehler. Irgendwas muss beim Eintragen, fehlerhaft übertragen worden sein.

    Lösung: Per FTP auf den Server verbinden und die Änderungen wieder rückgängig machen.

    Antworten
  17. HALLO;

    Hallo,
    ich habe das dann auch so gemacht, also die htaccess geöffnet und den Code entfernt. danach lief es wieder Vielleicht lag es an meiner defekten URL, die die Endlosschleife verursacht hat. Bevor ich SEO Yoast installiert hatte, war alles in Ordnung. Mittlerweile stimmt gar nichts mehr, die Plugins Smush it und Catchify sind ausgefallen und alles was ich bisher gemacht habe, war für die Katz. Nie im Leben würde ich noch einmal so was machen.Im Netz steht viel Mist und die Kommentare sind auch nicht immer echt. Ich habe gestern Abend mein Problem in der Jobbörse von Wordpress eingereicht und hoffe, dass die mir gegen Geld meine Seite wieder in Ordnung bringen. Den Kommis nach zu urteilen, verstehen ja alle immer alles auf Anhieb, nur ich verstehe es nicht. Sorry, war nicht böse gemeint, fühle mich nur ziemlich im Stich gelassen.

    Antworten
  18. Hallo Jonas,
    danke für den tollen Artikel! Im Prinzip habe ich alles verstanden, aber eine Vorab-Frage, um ganz sicher in der richtigen .htaccess-Datei die Veränderungen vorzunehmen:
    Ich verfüge über 4 Domains. Ist gemeint, dass ich die Modifizierungen jeweils in der .htaccess-Datei der einzelnen Domains vornehme

    (- in diesen finde ich auch die von Dir angegebene „Grundregel“:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
    allerdings am Beginn steht zusätzlich: -)

    oder in der .htaccess-Datei die ich im Ordner „logs“ finde

    (- dort finde ich aber eine andere „Regel“, nämlich – hier ohne die exakten Zahlen:

    Options +Indexes
    RemoveHandler .html
    RemoveType .html
    AddType text/html .html
    Satisfy any
    Order Deny,Allow
    Allow from xxx.xxx.xxx.xxx
    Deny from all
    AuthType Basic
    AuthName „Access to /logs“
    AuthUserFile /kunden/homepages/xx/xxxxxxxx/htpasswd
    Require user xxxxxxxx )
    ???

    Zusatz-Info: Im Ordner „logs“ findet sich in der .htaccess-Datei unter Dateiberechtigungen der numerische Wert 644, in den .htaccess-Dateien der 4 Domains immer der Wert 604! „Ergoogelt“ habe ich dazu, dass 644 bzw. 604 eingesetzt werden soll – wie siehst Du das (- und was ist der Unterschied zwischen 644 und 604? -)?

    Liebe neugierige und fragende Grüße!
    Marie

    Antworten
    • Hallo Jonas,
      als 1. muss ich um Entschuldigung bitten, denn durch eine Unachtsamkeit habe ich meine Anfrage unvollständig gesendet … trotzdem hast Du die wesentliche Frage geklärt – vielen, vielen Dank – nämlich, dass jede Domain einzeln bedient werden darf/kann/muss …

      Dazu noch die ergänzende Frage:

      In meiner .htaccess-Datei entspricht der Text Deiner Vorgabe, es existiert aber eine eingeschobene 2. Zeile:

      # BEGIN WordPress

      Was bedeutet diese Zeile? (Ist wohl OK … oder?)

      Und in der Dateiberechtigung finde ich den Wert 604 (nicht wie von Dir vorgeschlagen 644) – „ergoogelt“ habe ich dazu, dass 644 oder 604 eingesetzt werden soll/kann – wie siehst Du das (- und was ist der Unterschied zwischen 644 und 604? -)?

      Und, neu, eine letzte Frage: Alle von Dir vorgeschlagenen Befehle in diese schon vorhandene .htaccess-Datei eintragen – also niemals weitere .htaccess-Dateien anlegen, um mehrere, schlanke .htaccess-Dateien zu haben???

      Nochmals herzlich fragende Grüße!
      Marie
      Marie

      Antworten
  19. aha, jetzt habe ich meinen Anfrage noch einmal gelesen, aber die eingeschobene Zeile wird nicht angezeigt – aha, weil ein html-Code (das war wohl auch bei der ersten Anfrage der Fall!) – ich versuche es nun so:
    spitze Klammer auf – IfModule mod_rewrite.c – spitze Klammer zu
    HG Marie

    Antworten
  20. Hallo Jonas, toller Beitrag. Vor allem zum Thema Sicherheit.

    Kennst du einen Befehl der alle http:// www Anfragen auf https ohne www weiterleitet?

    Irgendwie finde ich da nichts richtig gutes 🙁 danke dir!

    Antworten
  21. Hallo Jonas,
    vielen Dank für den hilfreichen Artikel!
    Ich möchte gerne eine 404er Seite ausgeben lassen, wenn die URL nicht mehr vorhanden ist. Bisher wird immer auf die Startseite weitergeleitet. Muss ich das nicht auch in der .htaccess deklarieren? Und wenn ja, was genau müsste ich denn eintragen?

    Viele Grüße
    Becca

    Antworten
  22. Hallo Jonas,
    das Problem ist gelöst 🙂 Sobald man anderen davon berichtet, fällt einem plötzlich auf, wo der Fehler liegt 😀
    Vielen Dank, dass ich es hier loswerden konnte und viele Grüße
    Becca

    Antworten
  23. Danke für den Beitrag. habe ihn schon länger in meiner Leseliste gehabt, aber es war nie Zeit dafür. Nachdem ich aber diese Woche mit meinem Blog an den Start gegangen bin werde ich die .htaccess morgen gleich mal Bearbeiten. Vorallem das mit dem Benutzernamen hat mich etwas schockiert weil ich extra keinen typischen gewählt habe, damit man ihn nicht leicht erraten kann. Das war natürlich nur bedingt sinnvoll wenn man ihn doch so leicht auslesen kann. :-O

    lg
    manu

    Antworten
  24. Hallo Jonas, oder auch andere
    WordPress-Spezialisten…

    Ich habe auf einer WordPress-Seite den wp-Admin Bereich per htaccess geschützt. Leider kann ich jetzt keine passwortgeschützten Unterseiten mehr verwenden, da ich immer nach meinem htaccess Passwort gefragt werde.
    Wie könnte ich die htaccess so konfigurieren, dass trotzdem passwortgeschützte Bereiche möglich sind?

    Danke im Voraus, alex

    Antworten
  25. Hallo Jonas, simpel und doch schwierig…
    ich wollte meine admin Seite serverseitig schützen, d.h. durch eben die .htaccess.
    Auf meiner Seite befinden sich jedoch passwortgeschützte Bereiche (nichts hochdramatisches, aber doch schützenswert)
    Nun war es so, dass bei jedem Aufruf der durch WP passwortgeschützten Seite auch das htpasswd gefragt wurde und wird.
    Dafür gibt es prinzipiell keine Lösung…
    Außer mit einem Passwort Plugin, welches ich jetzt für die Inhalte auf der Seite verwende,
    gefällt mir richtig gut: „passster“

    LG Alex

    Antworten
  26. Danke für den g-zip-Tipp: trotz aktivierter Einstellung in «WP-Fastest Cache» hat das mit g-zip erst durch Deine Ergänzung in der htaccess-Datei funktioniert.

    I feel Blessed!

    Olaf

    Antworten
  27. Hallo Jonas,
    sehr schön erklärt und für den Anfänger auch nachvollziehbar. Danke dafür!
    Ich wollte meine Webseite nach Deiner Erklärung so schützen, dass man den Nutzernamen nicht mehr „auslesen“ kann. Also in der htaccess die folgenden Daten eingeben:
    # Verhindert das einfache Auslesen von Nutzernamen
    RewriteEngine On
    RewriteBase /
    RewriteCond %{QUERY_STRING} .*author=(.+.?) [NC]
    RewriteRule (.*) /blog/?author= [NC,L,R=301]

    habe es auch so vorgenommen (nachdem ich die htaccess zur Sicherheit für mich kopiert habe) dann lies sich die Homepage aber nicht mehr aufrufen, und eine Fehlermeldung war das Ergebnis.
    Schade eigentlich.
    Was habe ich falsch gemacht?
    Danke für die Hilfe
    LG Maria-Anne

    Antworten
  28. Weil ich selbst lange gesucht habe und nichts gefunden hatte:

    Alle, die den Ordner „wp-admin“ mit einem zusätzlichen Passwortschutz via htaccess versehen sollten den Zugriff auf „admin-ajax.php“ gewähren mit

    Order allow,deny
    Allow from all
    Satisfy any

    da sonst ajax nicht funktioniert und außerdem in den Unterordner „js“ ebenfalls eine htaccess packen mit:

    Order allow,deny
    Allow from all
    Satisfy any

    Sonst bekommen eventuell WooCommerce-Kunden oder andere Nutzer im Blog auf Seite „my-account/edit-account“ eine ungewollte Passwortabfrage.

    Grüße
    Max

    Antworten
    • Jau, hier werden die Kommentare nicht richtig escaped!

      Es ging um eine Files-Anweisung für jeweils

      admin-ajax.php

      und

      password-strength-meter.min.js

      Antworten
  29. Hallo,
    Danke für die wertvollen Tipps.
    Gerne würde ich das Auslesen von Nutzernamen verhindern. Habe dazu Deinen Code in der .htaccess eingetragen und es funktioniert soweit.

    Allerdings funktioniert nun das WordPress-Werkzeug „Daten exportieren“ (wp-adim/export.php) nicht mehr.

    In der Adresszeile im Browser erscheint […]“/blog/?author=“ und meine 404-Seite. Ich erhalte keine Download-Datei mehr.

    Gibt es dafür eine Lösung?
    Gruß
    Will

    Antworten
  30. Hallo,

    wird die .htaccess bei jeder WordPress Aktualisierung auch überschrieben oder bleiben die Konfigurationen erhalten?

    Vielen Dank und schöne Grüße
    Sarah

    Antworten
      • Vielen Dank, Jonas, für die schnelle Antwort.

        Ich hätte noch einen Vorschlag für deinen Artikel:
        Über die .htaccess kann man ja auch die Schnittstelle XMLrpc deaktivieren, über die ja anscheinend auch viele Hacker einfallen.
        Vorausgesetzt man benutzt diese Schnittstelle nicht.

        Ich hätte folgenden Code verwendet:

        order allow,deny
        deny from all

        Und ist es wichtig in welcher Reihenfolge die Code-Snippets in der .htaccess stehen? (Abgesehen davon dass es hinter dem WP-Teil steht)

        Antworten
  31. Hallo. Evlt. kannst Du mir helfen. Ich stehe vor einem Providerwechsel da u.a. meine php-Version veraltet ist und ich nicht mehr WP updaten kann. Mein WP liegt in einem Unterverzeichnis geschützt mit einer htpasswd. Den Umzug an sich werde ich soweit hinkriegen. Nur die htaccess im Rootverzeichnis gibt mir ein Rätsel auf. Dort steht in der ersten Zeile FCGIWrapper /home/www/username/fcgid/php54-fcgid .php. Kann ich das löschen oder wie gehe ich damit um in meiner neuen Serverlandschaft.

    Antworten
  32. Hi zusammen,

    ich finde echt keine Lösung oder ich übersehe einfach mein Problem. Die Seite hat natürlich https:// – und sollte immer umgeleitet von http:// auf https:// – aber das läuft nicht. Die Startseite und alle Unterseiten sind weiterhin über http:// zu erreichen – was läuft da falsch in der .htaccess… könntet Ihr mir helfen…

    Danke!

    # BEGIN WordPress
    # Die Anweisungen (Zeilen) zwischen `BEGIN WordPress` und `END WordPress` sind
    # dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
    # Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress
    # BEGIN WP-Optimize Gzip compression

    # Compress HTML, CSS, JavaScript, Text, XML and fonts
    AddType application/vnd.ms-fontobject .eot
    AddType font/ttf .ttf
    AddType font/otf .otf
    AddType font/x-woff .woff
    AddType image/svg+xml .svg

    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
    AddOutputFilterByType DEFLATE application/x-font
    AddOutputFilterByType DEFLATE application/x-font-opentype
    AddOutputFilterByType DEFLATE application/x-font-otf
    AddOutputFilterByType DEFLATE application/x-font-truetype
    AddOutputFilterByType DEFLATE application/x-font-ttf
    AddOutputFilterByType DEFLATE application/x-font-woff
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE font/otf
    AddOutputFilterByType DEFLATE font/ttf
    AddOutputFilterByType DEFLATE font/woff
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE image/x-icon
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/javascript
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/xml

    # Remove browser bugs (only needed for really old browsers)
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
    Header append Vary User-Agent

    # END WP-Optimize Gzip compression

    Antworten
  33. Super Veranschaulichung, wie man die wp-config zusätzlich sichern kann. Und auch sollte! 🙂

    Ich finde die Sicherheit bei WordPress ist enorm wichtig geworden. Gerade weil WordPress immer beliebter wird, nicht nur bei Blogs. Es wird also auch für Angreifer beliebter 😉

    Antworten
  34. Super Artikel, in Kombination mit einer Firewall und guten Dateirechten kann man seine Seite relativ sicher machen. Aber leider werden immer wieder Wege gefunden um Schaden anzurichten.

    Antworten

Schreibe einen Kommentar zu ped Antworten abbrechen

46 Plugins & Tools, dank denen ich 20.000 Besucher monatlich bekomme!

Das WordPress Toolkit kostenlos für dich

Abonniere meine exklusiven WordPress Tipps, News und mein Experten-Wissen, das ich sonst nirgends teile!

 

...und sichere dir das WordPress Toolkit kostenlos!

Nach der Begrüßungsmail kommen die E-Mails im Normalfall 1x / Woche. Du kannst dich natürlich jederzeit abmelden und bekommst keinen Spam! Datenschutz

46 Plugins & Tools, dank denen ich 20.000 Besucher monatlich bekomme!

Das WordPress Toolkit kostenlos für dich

Abonniere meine exklusiven WordPress Tipps, News und mein Experten-Wissen, das ich sonst nirgends teile!

 

...und sichere dir das WordPress Toolkit kostenlos!

Nach der Begrüßungsmail kommen die E-Mails im Normalfall 1x / Woche. Du kannst dich natürlich jederzeit abmelden und bekommst keinen Spam! Datenschutz