У меня есть клиент, у которого есть договоренность о хостинге с 400 сайтами клиентов, все они размещены через SuPHP в режиме CGI на Apache. Сисопа больше нет, и клиент просит меня выкатить новую вещь PHP. Проблема в том, что загрузка сервера сейчас очень высока, и мы обнаружили, что это связано с поисковыми роботами. В частности, у нас был один клиент, который жаловался на медленные веб-сайты, и мы задействовали плагин заголовков 304 на его сайте против большинства поисковых роботов, и его сайт сразу заработал.
Мы хотели бы снизить эту нагрузку, выдав глобальный заголовок 304 всем сканерам, пропуская посетителей-людей. У меня есть длинный список ключевых слов пользовательского агента, на которые нужно уловить.
Какой лучший способ временно задействовать этот глобальный заголовок 304, позволяя посетителям-людям пройти прямо через него?
Я имею в виду, что я мог бы развернуть 400 изменений файла .htaccess, но было бы идеально сделать это изменение как одну центральную конфигурацию Apache, а затем оно автоматически повлияет на все сайты сразу.
Последний:
Я думаю, что в некоторых документах я вижу, что могу собрать некоторые пользовательские агенты, например:
RewriteCond %{HTTP_USER_AGENT} ^(google|spider|crawl|bot|yahoo) [NC]
Но как же связать эти пользовательские агенты с заголовком 304? Я имею ввиду, это синтаксис?
RewriteCond %{HTTP_USER_AGENT} ^(google|spider|crawl|bot|yahoo) [NC]
Header set 304 "HTTP/1.0 304 Not Modified"
Трудно дать конкретный комментарий без подробностей, но я предполагаю, что вы используете RewriteRules в файле .htaccess для достижения такого поведения. Модуль mod_rewrite можно активировать, и в конфигурации Apache можно использовать такие объявления, как RewriteCond и RewriteRule.
Один из хороших способов сделать это, если вы занимаетесь массовым виртуальным хостингом, - это создать простой миксин, содержащий ваши правила, и использовать функцию включения Apache, чтобы включить этот фрагмент конфигурации в каждый виртуальный хост, для которого поисковые роботы создают проблему. С другой стороны, есть модули Apache, которые могут замедлять или блокировать отдельные IP-адреса, потребляющие слишком много ресурсов. Примеры включают mod_throttle, mod_evasive и внешнюю утилиту fail2ban.