Как защититься от спаммеров с помощью .htaccess?
Мало кто знает, но в кодексе описан весьма эффективный способ защиты от спама с помощью директив в .htaccess. Это, так называемая, серверная защита от спама - она не требует установки какого-либо плагина или изменения кода темы. Вам достаточно добавить в файл .htaccess в корне вашего сайта следующий код:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*testwp.ru.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L] </IfModule> |
Данный код проверяет поля referrer и user agent. Спам-скрипты давно уже умеют притворяться браузером, поэтому проверка на user agent вряд ли поможет, а вот подделывать referrer в большинстве своем спам-скрипты не умеют (они сразу лезут к файлу wp-comments-post.php, минуя страницы записей), поэтому эффективность такой защиты от спама весьма велика (на личном опыте - больше 95%). Не забудьте только исправить в коде 'testwp.ru' на ваш собственный домен.
Скажите пожалуйста, почему в htaccess не работают редиректы?
мне надо, чтобы в статьях был один адрес, а после клика шел на другой.
прописываю такого рода код, но перенаправления нет:
redirect 301 http://один сайт http://другой сайт
Интересно. Спасибо. А на сколько этот способ не повредит обычным пользователям? Что будет если обычный пользователь попадет под "фильтр"? Он получит какое-то сообщение и сможет ли он снова отправить комментарий?
обычные пользователи пострадают только, если у них установлены какие-либо плагины для удаления referrer - если же подобных приблуд для браузера нет, то ошибочного срабатывания защиты не будет.
Как-то пробовал такой способ - блокирует все комментарии, не только от ботов, но и от нормальных посетителей. Пришлось отказаться.