Es gibt sehr gute WordPress-Plugins die versuchen, die Kommentare frei von Spam zu halten. Da gibt es sicherlich gute und weniger gute Lösungen. Das bereits mitgelieferte Akismet macht zwar seinen Job, aber aufgrund der Datenschutzmängel sollte man in Deutschland auf die Nutzung sicher eher verzichten. Ich habe auf redircet301.de Antispam Bee von Sergej Müller im Einsatz und bin damit voll und ganz zufrieden.

Wer aber auf ein zusätzliches Plugin verzichten oder den Spammern einen weiteren Stein in den Weg legen möchte, ist mit den hier aufgeführten Code-Zeilen für seine htaccess-Datei sehr gut aufgehoben.

Was machen die Conditions und die RewriteRule

Die hier verwendeten Rewrite-Conditions sorgen dafür, dass (automatisch arbeitende) Bots, die

  1. versuchen die wp-comments-post.php (6) direkt
  2. per POST-Methode (5) ansprechen
  3. und dabei nicht von der eigenen Blog-URL (7) kommen
  4. oder keinen User-Agent übermitteln (8)
  5. an die Remote-Adresse, also die Adresse, von der aus versucht wurde den Spam in unseren Blog einzuschleusen, per 301 weitergeleitet (9) werden.
<IfModule mod_rewrite.c>
   # Start: Kommentar-Spam-Bots aussperren
   # www.redirect301.de/kommentar-spam-per-htaccess-verringern.html
   RewriteEngine On
   RewriteCond %{REQUEST_METHOD} POST
   RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
   RewriteCond %{HTTP_REFERER} !.*www.redirect301.de.* [OR]
   RewriteCond %{HTTP_USER_AGENT} ^$
   RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
   # Ende: Kommentar-Spam-Bots aussperren
</IfModule>

In Zeile 7 muss natürlich die eigene URL, auf dem der WordPress-Blog betrieben wird, eingetragen werden. Wer möchte kann in Zeile 9 auch auf eine lokale html-Datei verweisen und so z.B. die Spam-Kommentare tracken, die IPs der Spammer ermitteln und diese ggf. sperren oder anderweitig weiter verarbeiten.

Gefunden habe ich diesen Tipp bei allguru.net. Jedoch habe ich in Zeile 9 das ^-Zeichen vor dem http entfernt, da dies bei meinem Test nicht zu den gewünschten Effekt führte, dass die Remote-Adresse korrekt angesprochen wurde.