Возникла у меня недавно потребность запретить поисковым системам индексировать один файлик на моем сайте. Чтобы вы голову зря не ломали это не данный сайт для новичков в SEO. А совсем другой. Так вот, когда я столкнулся с проблемой запрета индексации, мне пришлось поломать голову, прежде чем я смог нормально осуществить данный запрет.
Главной особенностью было то, что запрет на индексацию нужно было сделать не через прописывание запрета в robots.txt, а с помощью файла .htaccess.
Нужно это было для того, чтобы никто кроме меня не знал, что я запретил...
Запрет с помощью .htaccess
Для осуществления данного действия нужно чтобы у вас в корневой папке домена, например, для этого сайта это будет папка seoneophyte.ru, находился файл .htaccess.
Если у вас такой файл есть - а его особенность – отсутсвие имени и наличние только расширения, то есть (точка)htaccess, то можно просто внести в него изменения. Если такого файла нет, то его очень просто сделать: нужно в блокноте создать файлик htaccess.txt, и переименовать в .htaccess.
Кстати в проводнике windows с этим могут быть проблемы.
Когда вы убедились, что файлик .htaccess есть, в него просто нужно дописать следующие строки:
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
Вышеописанные строки для трех основных поисковиков Google, Yandex и Yahoo.
Что именно мы прописали в .htaccess для запрета?
Попробую расшифровать написанное на примере Google
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase – это мы задаем условия для переменной env
User-Agent – означает какая именно переменная, в данном случае это имя агента или бота поисковой машины
"^Googlebot" собственно это имя этого агента
А search_bot – это значение переменной
Другими словами (по русски) строчка
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
Значит: если на сайт придет бот у которого в имени будет содержаться слово Googlebot, то такому боту задать значение переменной env= search_bot (пометить его как search_bot)
Запрет других ботов в .htaccess
Вот список других ботов которые могут вас навестить:
SetEnvIfNoCase User-Agent "^Aport" search_bot
SetEnvIfNoCase User-Agent "^msnbot" search_bot
SetEnvIfNoCase User-Agent "^spider" search_bot
SetEnvIfNoCase User-Agent "^Robot" search_bot
SetEnvIfNoCase User-Agent "^php" search_bot
SetEnvIfNoCase User-Agent "^Mail" search_bot
SetEnvIfNoCase User-Agent "^bot" search_bot
SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
SetEnvIfNoCase User-Agent "^Snapbot" search_bot
SetEnvIfNoCase User-Agent "^WordPress" search_bot
SetEnvIfNoCase User-Agent "^BlogPulseLive" search_bot
SetEnvIfNoCase User-Agent "^Parser" search_bot
Задаем правило для запрета в .htaccess
Вот само правило:
Order Allow,Deny
Allow from all
Deny from env=search_bot
Поясняю:
в строке Order Allow,Deny
Мы указываем порядок доступа, у нас сказано сначала разрешить, а потом запретить
Allow from all – разрешить всем
Deny from env=search_bot – запретить доступ тем, кто помечен флажком search_bot, в данном случае это боты, которые мы перечисляли выше
Нужно заметить что такое правило запрещает доступ этим ботам на весь сайт, если мы хотим запретить в .htaccess только определенный файл или группу файлов нужно их уточнить, делается это так:
<FilesMatch "^.*$">
Order Allow,Deny
Allow from all
Deny from env=search_bot
</FilesMatch>
То есть все тоже самое, но мы ограничиваем область запрета в FilesMatch
"^.*$" эта комбинация также значит любой файл (^ - начало строки, точка – это любой символ, звезда – любое количество этого символа, то есть сочетание (.*) значит любая комбинация любых символов, а $ - это конец строки). Поэтому такой комбинацией мы запрещаем в .htaccess доступ к любому файлу.
<FilesMatch "^.*primer\.html$"> -тут мы запрещаем доступ только к файлу primer.html
<FilesMatch "^.*primer.*$"> - запрет к любому файлу, содержащему слово primer
Примеры запрета в .htaccess для ботов
Запрет на любой файл для ботов:
SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase User-Agent "^Aport" search_bot
SetEnvIfNoCase User-Agent "^msnbot" search_bot
SetEnvIfNoCase User-Agent "^spider" search_bot
SetEnvIfNoCase User-Agent "^Robot" search_bot
SetEnvIfNoCase User-Agent "^php" search_bot
SetEnvIfNoCase User-Agent "^Mail" search_bot
SetEnvIfNoCase User-Agent "^bot" search_bot
SetEnvIfNoCase User-Agent "^igdeSpyder" search_bot
SetEnvIfNoCase User-Agent "^Snapbot" search_bot
SetEnvIfNoCase User-Agent "^WordPress" search_bot
SetEnvIfNoCase User-Agent "^BlogPulseLive" search_bot
SetEnvIfNoCase User-Agent "^Parser" search_bot
<FilesMatch "^.*$">
Order Allow,Deny
Allow from all
Deny from env=search_bot
</FilesMatch>
Запрет на файл primer.html для трех основных поисковиков Google, Yandex и Yahoo
SetEnvIfNoCase User-Agent "^Googlebot" search_bot
SetEnvIfNoCase User-Agent "^Yandex" search_bot
SetEnvIfNoCase User-Agent "^Yahoo" search_bot
<FilesMatch "^.*primer\.html$">
Order Allow,Deny
Allow from all
Deny from env=search_bot
</FilesMatch>
Надеюсь вам пригодиться данная информация, у меня ушло очень много времени, чтобы разобрать как запрещать доступ к файлам через переменную в .htaccess
Кстати точно также можно запретить и доступ с определенного ip.
Для этого нужно записать
SetEnvIfNoCase Remote_Addr 123\.123\.123\.123 search_bot
В данном случае ip =123.123.123.123
Удачи!
Wordpress поддержка поддержка и продвижение сайтов на Joomla, Yii. Разработка компонентов и расширений
|