htaccess

Возникла у меня недавно потребность запретить поисковым системам индексировать один файлик на моем сайте. Чтобы вы голову зря не ломали это не данный сайт для новичков в 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

 

Удачи!

 

Добавить комментарий


Защитный код
Обновить

Жизнь вне сети
Вместе с нами
Сейчас 6 гостей онлайн
Пользователи : 1
Статьи : 30
Просмотры материалов : 161941