彻底禁止这些不听话的蜘蛛抓取那些我不想被收录的页面

2021年1月24日13:45:51 评论 1954字阅读6分30秒

彻底禁止这些不听话的蜘蛛抓取那些我不想被收录的页面

彻底禁止这些不听话的蜘蛛抓取那些我不想被收录的页面!robots协议显然还是太温柔了!

一、Nginx 规则

直接在 server  中新增如下规则即可:

server
{
listen 80;
server_name zhangge.net;
index index.html index.htm index.php default.html default.htm default.php;
root  /home/wwwroot/zhangge.net;
#### 新增规则【开始】 ####
#初始化变量为空
set $deny_spider "";
#如果请求地址中含有需要禁止抓取关键词时,将变量设置为y:
if ($request_uri  ~* "\?replytocom=(\d+)|\?p=(\d+)|/feed|/date|/wp-admin|comment-page-(\d+)|/go") {
set $deny_spider 'y';
}
#如果抓取的UA中含有spider或bot时,继续为变量赋值(通过累加赋值间接实现nginx的多重条件判断)
if ($http_user_agent ~* "spider|bot") {
set $deny_spider "${deny_spider}es";
}
#当满足以上2个条件时,则返回404,符合搜索引擎死链标准
if ($deny_spider = 'yes') {
return 403; #如果是删除已收录的,则可以返回404
break;
}
#### 新增规则【结束】 ####
#以下规则略...

Ps:就是将上述代码中“新增规则【开始】”到“新增规则【结束】”内容添加到我们网站的 Nginx 配置-- server 模块 中的 root 指令之后即可。

二、 Apache规则

Apache 测试了半天总是500错误,暂时先放弃了,有时间再来调整!

我自己测试写的规则如下,感兴趣的朋友可以自行测试看看,也许是我环境的问题。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (^$|spider|bot) [NC]
RewriteCond %{REQUEST_URI} (/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+)) [NC]
RewriteRule ^(.*)$ - [F]

Ps:大概思路和Nginx一致,既匹配了蜘蛛UA,又匹配了禁止关键词的抓取,直接返回403(如何返回404,有知道的朋友请留言告知下,测试成功的朋友也敬请分享一下代码,我实在没时间折腾了。)

三、PHP代码版

使用说明:将一下代码添加到主题目录的functions.php当中即可。
*/
ob_start("Deny_Spider_Advanced");
function Deny_Spider_Advanced() {
$UA = $_SERVER['HTTP_USER_AGENT'];
$Request_uri = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
$Spider_UA  = '/(spider|bot|)/i'; //定义需要禁止的蜘蛛UA,一般是spider和bot
//禁止蜘蛛抓取的路径,可以参考自己的robots内容,每个关键词用分隔符隔开,需注意特殊字符的转义
$Deny_path  = '/\?replytocom=(\d+)|\?p=(\d+)|\/feed|\/date|\/wp-admin|wp-includes|\/go|comment-page-(\d+)/i';
//如果检测到UA为空,可能是采集行为
if(!$UA) {
header("Content-type: text/html; charset=utf-8");
wp_die('请勿采集本站,因为采集的站长木有小JJ!');
} else {
//如果发现是蜘蛛,并且抓取路径匹配到了禁止抓取关键词则返回404
if(preg_match_all($Spider_UA,$UA) && preg_match_all($Deny_path,$Request_uri)) {
//header('HTTP/1.1 404 Not Found');
//header("status: 404 Not Found");
header('HTTP/1.1 403 Forbidden'); //可选择返回404或者403(有朋友说内链404对SEO不太友好)
header("status: 403 Forbidden");

}
}
}

使用很简单,将上述PHP代码添加到主题目录下放 functions.php 当中即可。

继续阅读
  • 文本由 发表于 2021年1月24日13:45:51
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
以SEO培训为例查看用户需求 SEO

以SEO培训为例查看用户需求

以SEO培训为例查看用户需求 大家都知道笔者的业务板块有seo培训,对seo培训这个词有长期的观察。用户需求有真实的,也有人为制造的,通过百度需求图谱,可以大致看到那些需求是被人工操作的。 参加seo...
利用Sitemap提交漏洞劫持其它网站排名 SEO

利用Sitemap提交漏洞劫持其它网站排名

利用Sitemap提交漏洞劫持其它网站排名 我个人虽然不建议做黑帽SEO,但了解一些黑帽技术是白帽SEO的必修课。SEO黑帽的常见技术和最新应用至少可以让我们: · 在不能失误的正规网站上避免黑帽的坑...
搬家更换域名及301重定向方法 网站建设

搬家更换域名及301重定向方法

搬家更换域名及301重定向方法 由于各种原因我们可能需要放弃原来的域名,但需要保留原有的数据存在,很多人可能会直接删除原来的域名重新绑定一个新的域名。其实这样的做法是不妥的,毕竟我们之前花费较多的时间...
SEO网站优化工具分享 SEO

SEO网站优化工具分享

SEO网站优化工具分享 一、快排助手:互刷与自刷的点击软件 软件基本特点 因为有浏览窗口,我认真看了几下刷的几个任务,执行的逻辑还是比较简单的: 打开百度/搜狗/360——输入关键词——鼠标随机下滑—...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: