当前位置:首页 > Contributors > 正文内容

WordPress防采集最佳办法和解决思路

admin3个月前 (03-01)Contributors140

要想防止网站被恶意采集,那么就需要了解大多数的采集方式和规则,这样才能够反其道而行之的去屏蔽和防采集,有时候我们辛辛苦苦写的一些文章或者大批量的文章内容成为了别人的嫁衣,同时别人采集还增加服务器负担,想想就觉得不值得啊。


老黑我之所以决定要做这个防采集的想法有很久了,是因为前段时间有个网站不断的换 IP 来采集我们wp操的问答内容,我禁用一个 IP,他换一个 IP,我后来把那个地区所有的 IP 段都屏蔽了,这才基本到止为止。我这么忙的人总不能每天把时间都花在去看服务器 IP,去屏蔽 IP 这件事情上吧?

于是终于下定决心来做这件事情了,以前是想通过随机给 WordPress 正文内容中插入网站名称的字词,然后通过内链样式隐藏,但是这样别人依旧能把内容采集过去,所以也迟迟没有这样做,后来突然反应过来,采集最重要的就是采集规则,而想要更好的采集就需要获取到文章列表,这下子就很好做了。

简单的来科普一下,采集时大多数人都是根据文章栏目和列表获取采集文章的 URL 链接,所以最重要的就是翻页,这也是几乎所有网站暴露网站所有文章的一种方式,那么最简单的解决办法就是让网站列表不能无止境的翻页,这样就算能采集几十篇的内容,也无法把整站的内容都采集走了。

//WordPress 禁止翻页屏蔽/防采集
add_filter('pre_get_posts','fanly_basic_query_posts');
function fanly_basic_query_posts($wp_query) {
if($wp_query->is_admin || !$wp_query->is_main_query()) return;
if ($wp_query->is_home || $wp_query->is_archive || $wp_query->is_search) {
$paged = 10;//超过 10 页后就显示 404
if($paged && $wp_query->get('paged') > $paged){
//404 页面
$wp_query->set_404();
status_header(404);
nocache_headers();
include(get_query_template('404'));//需要主题的 404.php
die();
//404 页面
}
}
}

把以上代码复制放到当前主题的 functions.php 文件中,就可以实现当 WordPress 翻页超过 10 页后就会调用 WordPress 主题的 404 页面,可以通过修改代码的 paged 参数值修改翻页数量来自定义。

代码中会对所有的列表页面都生效,首页、文章归档(分类、标签、日期)、搜索页面等都一视同仁,还可以根据自己需要添加判断,根据不同的列表做不同的限制,老黑这里就不展开分享了。

另外如果你的翻译使用的是 get_next_posts_link(string $label=null, int $max_page) 来翻页下一页,还可以通过设置最大翻页来避免出现翻页死链的情况出现。

别看上面代码行数多,其实 404 页面那整段可以直接使用跳转到首页,甚至直接使用 die 结束,我这里分享只是为了漂亮的结束为 404 页面而已。

如果为了更好的防止 WordPress 被采集,那么还可以针对 feed、站点地图 sitemap 等方面做屏蔽,因为 WordPress 的翻页都有 page 参数所以还可以服务器屏蔽路径的方式。让采集获取不到网站完整的列表链接基本就能防止很大一部分采集。

由于我们 WordPress 交流群有人在问具体的栏目自定义屏蔽页数怎么办,所以就再来稍微修整一下,一下代码中的数字“10”就是可以自定义的,根据后面的备注修改就可以了。

//WordPress 禁止翻页屏蔽/防采集(自动版本)
add_filter('pre_get_posts','fanly_basic_query_posts');
function fanly_basic_query_posts($wp_query) {
if($wp_query->is_admin || !$wp_query->is_main_query()) return;
$paged = $wp_query->get('paged');
if (($wp_query->is_home && $paged > 10)//首页
|| ($wp_query->is_category('news') && $paged > 10)//指定分类
|| ($wp_query->is_category && $paged > 10)//分类
|| ($wp_query->is_tag && $paged > 10)//标签
|| ($wp_query->is_author && $paged > 10)//作者
|| ($wp_query->is_archive && $paged > 10)//归档
|| ($wp_query->is_search && $paged > 10)//搜索
) {
//404 页面
$wp_query->set_404();
status_header(404);
nocache_headers();
include(get_query_template('404'));//需要主题的 404.php
die();
//404 页面
}
}

好啦,以上就是老黑针对 WordPress 防采集提供的一段代码,自我感觉最实用最佳的防止采集的办法及解决思路,如果你有更好的解决方法,欢迎留言告诉我。


扫描二维码推送至手机访问。

版权声明:本文由博赚恋吧资源站发布,如需转载请注明出处。

本文链接:https://432l.com/post/9846.html

标签: WordPress
分享给朋友:

相关文章

Office Live Small Business - 500M支持ASP.net免费网站空间

Office Live Small Business是由Microsoft(微软)推出的免费自助建站服务,但可以设置为免费网站空间,500M容量,网络客户端上传管理文件,提供100个免费邮箱帐户,支持ASP.net,提供可自定义免费域名1个,也可以绑定自己的顶级国际域名,无广告。Office Live Small Business对于美国用户免费提供国际域名一个以及100美元广告费,需要绑定信用卡...

web335 广互网络科技免费300M全能空间申请

web335 广互网络科技免费300M全能空间申请 免费空间,免费全能空间,免费动态空间,国内最好的免费空间-广互网络科技 由广互网络科技有限公司提供300M免费全能空间,支持asp,asp.net,php经测试,虽然空间免费,空间比较稳定,速度良好,相对国内其它免费空间来说,这是个不错的选择。 空间采用独立面板管理,FTP上传,没有网页广告,默认赠送二级免费域名,可绑定顶级域名, 自行...

PurgeHosting - 支持FTP、PHP、CGI大小250M/1G的国外免费空间

PurgeHosting - 支持FTP、PHP、CGI的国外免费空间250M/1GPurgeHosting美国的一家虚拟主机服务商,为广大用户价格低廉的虚拟主机和代理主机,同时提供250M-1000M的免费虚拟主机。其提供的免费空间具有cPanel中文管理面板,ftp(3个ftp帐户)、web方式上传管理文件,支持PHP5、CGI,提供3个MySQL数据库,有免费二级域名,可以绑定1个域名、停放...

Hostult提供大小流量不限超强稳定8年以上的免费Php/CGI主机

从免费吧搞来的好东西!此空间没有夸大其词,不信你可以去各大引擎搜索一下,2000年的演示现在还活着,最早玩空间的老手都知道的。空间申请有点难度,这就是空间稳定的所在,估计免费吧发过,看空间不错再次推荐一下,我菜鸟一个,来到免费吧没有任何作为,我不愿意发一些垃圾空间,更不愿意发一些让人无法使用的免费空间,要玩就玩好东西,介绍一些真正可以使用的东西。空间不带数据库以前外调可以使用,现在没有试过.空间演...

亿家互联论坛贺七夕,送邀请码N个,先到先得

亿家论坛贺七夕,送邀请码N个,先到先得!     2fda438e7fGnXxGz       e4c4041bad85Mv50       53e342519bODZ695...

火山免费主机免费虚拟主机暂停申请,免费渐行渐远

通告:免费虚拟主机暂停申请,若有需要,请申请免费VPS。 免费虚拟主机使用规则:网站必须符合本公司《虚拟主机使用条款》的要求。不接受的网站包括但不限于以下类型:交互式内容、网上商城、人体艺术或写真站、私服内容、外挂、博彩或彩票、小说站、电影站及音乐站、经营性网站等。若发现不符合要求的网站一律删除数据,损失由用户承担。 用户必须通过手机短信身份验证,并且保证个人资料及联系方式是正确的,对于填写资料不...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。