我的网站经常关闭,因为蜘蛛可以访问许多资源。这是主持人告诉我的。他们告诉我禁止这些IP地址: 46.229.164.98 46.229.164.100 46.229.164.101
但我不知道如何做到这一点。
我已经搜索了一下,我现在已将这些行添加到根目录中的.htaccess:
# allow all except those indicated here
<Files *>
order allow,deny
allow from all
deny from 46.229.164.98
deny from 46.229.164.100
deny from 46.229.164.101
</Files>
这是100%正确吗?我能做什么? 请帮我。我真的不知道该怎么做。
答案 0 :(得分:24)
基于这些
https://www.projecthoneypot.org/ip_46.229.164.98 https://www.projecthoneypot.org/ip_46.229.164.100 https://www.projecthoneypot.org/ip_46.229.164.101
看起来就像机器人http://www.semrush.com/bot.html
一样如果那就是机器人,他们在页面中说
To remove our bot from crawling your site simply insert the following lines to your
"robots.txt" file:
User-agent: SemrushBot
Disallow: /
当然,这并不能保证僵尸程序符合规则。你可以通过几种方式阻止他。 .htaccess是一个。就像你做的那样。
你也可以做这个小技巧,拒绝在用户代理字符串中有“SemrushBot”的任何ip地址
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
SetEnvIfNoCase User-Agent "^SemrushBot" bad_user
SetEnvIfNoCase User-Agent "^WhateverElseBadUserAgentHere" bad_user
Deny from env=bad_user
这种方法将阻止机器人可能使用的其他IP。
详细了解用户代理字符串阻止:https://stackoverflow.com/a/7372572/953684
我应该补充一点,如果您的网站被蜘蛛占用,通常是,则意味着您有一个写得不好的脚本或一个非常弱的服务器。
编辑:
这一行
SetEnvIfNoCase User-Agent "^SemrushBot" bad_user
如果用户代理以字符串SemrushBot
开头,则尝试匹配(插入符^
表示“以”开头)。如果你想在User-Agent字符串中搜索让我们说SemrushBot
ANYWHERE,只需删除插入符号即可:
SetEnvIfNoCase User-Agent "SemrushBot" bad_user
以上意味着User-Agent在任何地方都包含字符串SemrushBot
(是的,不需要.*
)。
答案 1 :(得分:0)
你做的是正确的但是
您必须在 .htaccess 文件中编写该代码,而不是在Robots.txt文件中。
要拒绝任何搜索引擎抓取您的网站,代码应该是这样的
User-Agent:Google Disallow:/
它将禁止Google抓取您的网站。
顺便说一下,我更喜欢.htaccess方法。