Skip to content

Alles für WordPress, Webentwicklung — und mehr

.htaccess-Audit: Fehler 500, tote Direktiven, Hack-Anzeichen

.htaccess-Audit: warum die Site 500 liefert und welche Regeln nicht greifen

Ziehen Sie die Datei hierher — das Werkzeug findet BOM, tote Direktiven, Regeln mit hohem Risiko für einen Fehler 500 und Anzeichen fremder Eingriffe. Die Datei wird in Ihrem Browser gelesen und nirgendwohin gesendet.

Byte-Prüfungen — BOM, CRLF, nicht druckbare und unsichtbare Zeichen — sind nur für eine Datei möglich. Beim Einfügen aus der Zwischenablage entfernt der Browser sie bereits, sodass die häufigste Ursache eines 500-Fehlers unsichtbar wird.
Die Analyse startet automatisch. Die Datei wird nirgendwohin gesendet — Ihr Browser liest sie.
Kontext

Eine saubere .htaccess heilt keinen Hack. Ist die Site kompromittiert, steckt der Schadcode in PHP, und .htaccess ist nur dessen Folge: Der Dropper schreibt die Datei binnen Minuten nach Ihrer Bereinigung wieder um. Die Reihenfolge ist umgekehrt — zuerst den ausführbaren Code finden, dann die Konfiguration in Ordnung bringen.

Die Datei wird in Ihrem Browser gelesen — ihr Inhalt wird nirgendwohin gesendet und nirgends gespeichert.

Warum eine Datei und kein eingefügter Text

Die häufigste Ursache für einen 500er nach dem Bearbeiten von .htaccess ist im Text überhaupt nicht zu sehen. Es ist das BOM — drei unsichtbare Bytes am Dateianfang, die der Windows-Editor beim Speichern in UTF-8 hinzufügt. Apache hält sie für einen Teil der ersten Direktive und kann sie nicht parsen. Deshalb nimmt das Werkzeug genau die Datei entgegen: nur so lassen sich die Bytes lesen und das BOM, Windows-Zeilenumbrüche sowie unsichtbare Zeichen innerhalb der Zeilen erkennen. Die zweite Problemgruppe sind Direktiven, die nichts tun, aber funktionsfähig aussehen. mod_gzip_on ist Apache-1.3-Syntax; auf modernen Servern wird es stillschweigend ignoriert, während man jahrelang glaubt, die Komprimierung sei aktiv. Ein ExpiresByType-Block, der in eine Prüfung auf mod_headers.c statt mod_expires.c gepackt ist, greift ebenfalls nicht — und ohne Hinweis fällt das nicht auf. Drittens php_value und php_flag. Sie wirken nur, wenn PHP als Apache-Modul eingebunden ist. Auf modernen Hostings mit PHP-FPM wird eine solche Zeile entweder ignoriert oder liefert sofort einen 500er. Und getrennt zur Sicherheit: Wenn in der Datei Regeln stehen, die Besucher je nach Suchmaschine, aus der sie kommen, weiterleiten oder die Weiterleitung vor dem Administrator verbergen, ist das ein typisches Zeichen für eine Kompromittierung. Eine saubere .htaccess heilt den Hack jedoch nicht: fast immer liegt irgendwo in den Dateien ein PHP-Skript, das sie zurückschreibt.

Häufige Fragen