Baza wiedzy

Blokowanie robotów sieciowych

Większość robotów wyszukiwarek akceptuje ustawienia zawarte w pliku o nazwie robots.txt umieszczonym w katalogu public_html danej domeny. Plik blokujący roboty Yandex i Yahoo wygląda następująco: User-agent: Yandex
Disallow: *

User-agent: Slurp
Disallow: *

Uwaga! Działanie pliku nie jest natychmiastowe, roboty sieciowe pobierają jego zawartość w pewnych odstępach czasu.

Instrukcje dla pozostałych robotów można odnaleźć w sieci, wpisując w wyszukiwarkę "[nazwa robota] robots.txt".

Blokada w pliku .htaccess

Jeżeli robot nie akceptuje zasad zawartych w pliku robots.txt, można włączyć dodatkową blokadę dostępu do hostingu przez dopisanie odpowiednich reguł w pliku .htaccess umieszczonym w katalogu public_html danej domeny. Składnia wygląda następująco:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^Twiceler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yandex [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yahoo
RewriteRule .* - [F]

Nazwy robotów wpisujemy podając wyrażenie regularne (w powyższym przykładnie blokujemy wszystkie roboty, których user-agent zaczyna się od "Twiceler", "Yandex" i "Yahoo"). Powyższe linie powinny znajdować się przed innymi regułami mod_rewrite w pliku .htaccess.

Żądania zawierające zablokowane user-agent są widoczne w logach ze statusem 403 Forbidden. Dzieje się tak, ponieważ serwer i tak musi obsłużyć żądanie HTTP. Skrypty PHP nie są już wykonywane i nie zużywają zasobów.

Uwaga! Zablokowanie programu wget uniemożliwi wykonywanie zadań Cron na serwerze!

Odblokowanie robotów zablokowanych na serwerze

Niektóre roboty sieciowe, np. MJ12bot zostały odgórnie zablokowane na wszystkich serwerach w ramach naszego hostingu. Aby je odblokować, należy umieścić wpis w pliku .htaccess:

SetEnvIfNoCase user-agent "MJ12bot" !bad_bot

Oceń przydatność:


Zobacz także: