Как заставить .htaccess перенаправлять на 404.shtml при наличии /undefined в URL

T4
На сайте с 12.05.2015
Offline
1
1427

Здравствуйте! Идёт бот-атака на мой сайт. Бот добавляет /undefined к существующему URL, чем вызывает сотни ошибок 404 в минуту. Мне необходимо уменьшить нагрузку на хостинг. CMS Wordpress.

Подскажите, пожалуйста:

1) что нужно прописать в .htaccess, чтобы при обнаружении /undefined в URL, сразу отдавалась страница 404.shtml из корневой директории без участия CMS?;

2) возможно ли сделать так, чтобы CMS Wordpress вообще не участвовала в генерации ошибки 404?

В данный момент я модифицировал 404.php активной темы WP, убрал весь PHP-код и прописал html в лоб.

Заранее спасибо за советы

J
На сайте с 20.02.2014
Offline
120
jkm
#1


RewriteRule (?<![^/])undefined 404.shtml [L]

Ставить в самом верху сразу после RewriteEngine On

Хотя так получится, что для этих страниц будет код ответа 200. Лучше так


ErrorDocument 404 /404.shtml
RewriteRule (?<![^/])undefined - [L,R=404]
T4
На сайте с 12.05.2015
Offline
1
#2
jkm:

RewriteRule (?<![^/])undefined 404.shtml [L]

Ставить в самом верху сразу после RewriteEngine On

Хотя так получится, что для этих страниц будет код ответа 200. Лучше так

ErrorDocument 404 /404.shtml
RewriteRule (?<![^/])undefined - [L,R=404]

Да, Вы правы. Отдаётся 200. Но если я добавляю

ErrorDocument 404 /404.shtml

, то на одном сайте всё равно отдаётся 200, а на другом 500 Internal Error и в логах говорится о конфликте двух директив. Видимо, это зависит от настроек конкретной темы WP.

J
На сайте с 20.02.2014
Offline
120
jkm
#3

Другой вариант отдавать код 403 Forbidden


RewriteRule (?<![^/])undefined - [L,F]

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий