Когда спам боты (скрипты, позволяющие оставлять комментарии в вашем блоге) пытаются оставить спамерский комментарий, они обычно пытаются отправить его вашему скрипту для обработки комментариев, вместо того чтобы напрямую публиковать комментарий в записи или на странице. Чтобы пресечь спам, вы можете добавить небольшой код в свой файл .htaccess, который будет проверять поступление комментариев с вашего собственного URL-адреса.
<IfModule mod_rewrite.c> RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post. [NC] RewriteCond %{HTTP_REFERER} !.*<strong>thisismyurl</strong>. [OR,NC] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) - [F,L] </IfModule>
Обязательно измените thisismyurl на свое собственное доменное имя, иначе вы заблокируете все комментарии!
Источник: http://thisismyurl.com/4640/cut-wordpress-spam-simple-script/
У меня такой код не работает, спам как шел так и идет. Но у меня он немного другой:
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*url.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Скажите в чем разница и какой более правильный?