欢迎光临沃茨博客
一个爱分享的网站

你的网站被镜像了?不用怕

前言:博客在百度搜索里发现了我站被镜像了,所以百度了一下得到以下的解决方法

1、图片onerror与js代码方案

龙笑天下分享的通过拆分域名链接与镜像站比对,然后用img标签src空值触发onerror来执行js比对,比对失败则跳转回源站。

代码如下:(复制粘贴到主题的functions.php最后一个?>之前)

add_action('wp_footer','deny_mirrored_websites');
function deny_mirrored_websites(){
    $currentDomain = 'www.wc1234." + "cn'; //此处自行拆分一下自己的域名即可 如不需www二级可以去掉
    echo '<img style="display:none" src=" " onerror=\'var str1="'.$currentDomain.'";str2="docu"+"ment.loca"+"tion.host";str3=eval(str2);if( str1!=str3 ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "\"' . $currentDomain .'\"" + ")";eval(do_action) }\' />';
}

html静态版本
是上面的变种,只是把上面卸载js中的用写在静态代码里了。将以下

<img style="display:none" src=" " onerror='var currentDomain="luoxiao123." + "cn"; var str1=currentDomain; str2="docu"+"ment.loca"+"tion.host"; str3=eval(str2) ;if( str1!=str3 ){ do_action = "loca" + "tion." + "href = loca" + "tion.href" + ".rep" + "lace(docu" +"ment"+".loca"+"tion.ho"+"st," + "currentDomain" + ")";eval(do_action) }' />

以上两种方案都需要将代码中的域名替换为自己的域名!

2:UA判断方案

来自张戈的代码通过php判断UA为空或含有PHP的请求,否则弹出提示并禁止打开

/**
* WordPress 禁止UA为空或含有PHP的请求
**/
if(!is_admin()) {
add_action('init', 'deny_mirrored_request', 0);
}
function deny_mirrored_request()
{
$ua = $_SERVER['HTTP_USER_AGENT'];
if(!$ua || preg_match('/PHP/i', $ua)) {
header("Content-type: text/html; charset=utf-8");
wp_die('请勿采集本站,因为采集的站长木有小JJ!');
}
}

龙笑天下更优化版本,判断更多请求样式:

/**
* 网站被恶意镜像怎么办 一段代码轻松搞定(全面版) - 龙笑天下
* http://www.ilxtx.com/mirrored-website.html
* 出自:zhange.net
*/
//防止恶意HTTP_USER_AGENT采集
add_action('wp_head', 'deny_mirrored_request', 0);
function deny_mirrored_request()
{
$ua = $_SERVER['HTTP_USER_AGENT'];
$now_ua = array('FeedDemon ','BOT/0.1 (BOT for JCE)','CrawlDaddy ','Java','Feedly','UniversalFeedParser','ApacheBench','Swiftbot','ZmEu','Indy Library','oBot','jaunty','YandexBot','AhrefsBot','MJ12bot','WinHttp','EasouSpider','HttpClient','Microsoft URL Control','YYSpider','jaunty','Python-urllib','lightDeckReports Bot','PHP'); 
if(!$ua) {
header("Content-type: text/html; charset=utf-8");
wp_die('请勿采集本站,采集者木有小JJ!请正常访问,并认准【龙笑天下网】官方网址!');
}else{
    foreach($now_ua as $value )
    if(eregi($value,$ua)) {
    header("Content-type: text/html; charset=utf-8");
    wp_die('请勿采集本站,采集者木有小JJ!请正常访问,并认准【龙笑天下网】官方网址!');
    }
}
}

以上就是我找到的并且亲身验证的两种方案!当然还有nginx、.htaccess等方法!大家可以结合起来使用!方法多多,欢迎大家评论,分享更多切实有效的防镜像站办法!

赞(0) 打赏
未经允许不得转载:沃茨博客 » 你的网站被镜像了?不用怕
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    不用怕不用怕

    李明1年前 (2017-09-20) Windows 10 | Chrome 60.0.3112.90Reply

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏