Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bots 禁止机器人进入网站_Bots_Robots.txt_Web Crawler - Fatal编程技术网

Bots 禁止机器人进入网站

Bots 禁止机器人进入网站,bots,robots.txt,web-crawler,Bots,Robots.txt,Web Crawler,我的网站经常关闭,因为蜘蛛正在访问许多资源。这是主持人告诉我的。他们让我禁止这些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 d

我的网站经常关闭,因为蜘蛛正在访问许多资源。这是主持人告诉我的。他们让我禁止这些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>
#允许除此处所示之外的所有
命令允许,拒绝
通融
从46.229.164.98开始拒绝
从46.229.164.100开始拒绝
从46.229.164.101开始拒绝
这是100%正确吗?我能做什么?
请帮帮我。我真的不知道该怎么办。

你做的是对的,但是

您必须在.htaccess文件中编写代码,而不是在Robots.txt文件中

对于拒绝任何搜索引擎对您的站点进行爬网,代码应该是这样的

User-Agent:Google Disallow:/ 用户代理:谷歌 不允许:/ 它将禁止谷歌对你的网站进行爬网

顺便说一下,我更喜欢.htaccess方法。

基于这些

看起来机器人是

如果那真的是机器人,他们会在网页上说

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
这种方式将阻止bot可能使用的其他IP

请参阅有关按用户代理字符串阻止的详细信息:

我应该补充一点,如果你的网站被蜘蛛破坏了,通常意味着你的脚本写得不好或者服务器很弱

编辑:

这条线

SetEnvIfNoCase User-Agent "^SemrushBot" bad_user
尝试匹配用户代理是否以字符串
SemrushBot
开头(插入符号
^
表示“以开头”)。如果要搜索用户代理字符串中的任何位置,比如说
SemrushBot
,只需删除插入符号,使其成为:

SetEnvIfNoCase User-Agent "SemrushBot" bad_user

上面的意思是,如果用户代理包含字符串
SemrushBot
(是的,不需要
*
)。

看起来像一个.htaccess文件,而不是robot.txt,你应该与“宿主”对话并询问精度。是的,我犯了一个错误,现在我已经从robots.txt中删除了这些行,并将它们写入.htaccess。他们只是告诉我这些蜘蛛使用了太多的资源,我应该禁止他们的地址:/那么你对你发布的内容有什么特别的问题吗?@PatrickQ没有,我在1小时前遇到了问题,现在我的主机关闭了网站,正等着我找到解决方案……我正在使用vBulletin,现在的流量是我最近几个月最高流量的1/3。当流量达到100%时,网站还可以:/@daimpa请务必查看您的日志。如果一只蜘蛛来了,我可以保证会有更多的蜘蛛来。这就像广告公司知道你的电话号码一样。一旦他们发现你,他们会用不同的名字永远称呼你。@Sharky:你用插入符号“^”开始表达式,这是否意味着它只在字符串位于用户代理的开头时匹配?(我想知道这些不文明的人要多久才能改变他们的用户代理。)@WGroleau确切地说,插入符号是字符串开头的意思。根据我的经验,他们不会改变他们的用户代理字符串。如果有人想避免被阻止,通常会将其用户代理更改为googlebot或其他。无论如何,请继续查看您的日志,并建立一个坏用户代理列表,这些代理会对您的站点进行爬网并阻止它们。但是,请确保在robots.txt上添加
Disallow
(这样他们就不会再抓取你了,因为你不能只依赖于从你的终端进行阻塞,因为即使是阻塞也会消耗资源),并希望做到最好。。。那些!!!!!!!!!!!