Я видел много файлов robot.txt и некоторые решения для перезаписи модов, которые выглядели многообещающими ... но не смог найти простого решения, чтобы заблокировать пауков / скребков / кого бы то ни было, черт возьми, я хочу заблокировать ... Я бы предпочел сделайте это с помощью имени хоста / домена, поскольку это кажется проще, чем полагаться на пользовательские агенты и т. д.
Например, скажем, я должен был увидеть это в журналах Apache ..
msnbot-207-46-192-48.search.msn.com - - [07/Dec/2011:23:01:41 -0500] "GET /%3f/$/bluebox/blog/2011/iphoto/ HTTP/1.1" 404 366
хорошо ... я хочу предотвратить *.search.msn.com
с любого моего сайта - в любую из моих папок - VHOST или иным образом…
Обычно у меня МНОГО <VirtualHost *.80>
настройки, и НЕ хочу повторять настройку для каждого хоста .. В том же духе у меня есть много DocumentRoot
's ... и помещая файл в каждый из них, иначе .htaccess
действительно не вариант ..
Я что-то использовал в httpd.conf
это напоминало…
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^BadBot [OR]
RewriteRule ^(.*)$ http://go.away/`
Как я могу использовать имена хостов, предоставленные покрыватьUseCanonicalName On
Deny all
какой домен я так хотел?
UseCanonicalName
для имени хоста сервера, а не для клиента.
Это будет отлично работать в вашей глобальной конфигурации, вне любых VirtualHost
, пока у вас нет Order
директива в vhosts:
Order Allow,Deny
Allow from all
Deny from search.msn.com
Возможно, это не лучшая идея делать это по имени хоста, поскольку Apache должен будет выполнять поиск для каждого запроса.
Почему бы не сделать это с IPtables?