Посилаємо рагулів набік з mod_rewrite
Буває таке що боти ну просто задовбують запитами наш linux debian. А наш CPU не ґумовий. Допоможе нам mod_rewrite в .htaccess. В даному прикладі в нас колись був форум за адресою debian.ukr.im/forums який давно видалений, але тупі боти не розуміють по-людськи що 404 означає грохнули. Вони продовжують запитувати сторінки сайту з debian.ukr.im/forums в referer. Тому на самому початку (# First of all) .htaccess ми їм рекомендуємо mаcтрубувaти (go *ask* yourself).
<IfModule mod_rewrite.c>
# First of all - go *ask* yourself!
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*debian.ukr.im/forums.*
RewriteRule (.*) http://%{REMOTE_ADDR} [R=301,L]
</ifModule>
На разі, всі хто заявляє що прийшли від debian.ukr.im/forums йдуть на самих себе. А наш Апач на запит типу debian.ukr.im/forums/forum123/ навіть віддати 403 помилку не напружується. 403 це в тому шикарному випадку, коли ми вже здогадалися прикрити доступ до /forums через .htaccess. Якщо ж ні, і в нас ще й стоїть WordPress… кожен такий запит бота нам обійдеться тонною процесорного часу. Адже WordPress сумлінно шукатиме цю сторінку, або схожу на неї серед інших сторінок, що існують.
Фантазія по коригуванню коду далі безмежна.
UPD: За деякий час, як з’явився досвід, що 301 редірект все ж чомусь створює якесь навантаження, а код 403 – ні, код був переписаний:
<IfModule mod_rewrite.c>
# First of all - go *ask* yourself!
RewriteEngine On
RewriteCond %{HTTP_REFERER} .*debian.ukr.im/forums.*
RewriteRule (.*) - [F]
</ifModule>
Тепер віддаємо 403. Ще варто додати, що цей код стоїть в корені для того, щоб тих рагулів не пускати на всі інші сторінки сайту поза /forums/ бо форуму давно не існує, а при відвідуванні рагулі кажуть, що прийшли звідти. Якщо ж завдання лише в тому, щоб не було навантаження на генерацію 404х при запитах виключно в певну директорію і нижче, тоді достатньо написати ти чарівних слова Deny From All в .htaccess тої директорії.