老听说有人的网站被恶意镜像,于是我先收藏几种解决方法。
镜像站看似一个完整的站点,其实每次用户访问镜像站点,他的小偷程序就会来正版的网站查询数据,并修改相关链接然后呈献给用户。实质上还是在读取原站的数据,我们只需要屏蔽到抓取我们数据的那个主机ip就可以了。
方法一:.htaccess文件禁ip
1、获取镜像服务器ip
复制如下代码,新建一个php文件,并命名为“ip.php”上传到你的网站根目录
$file = "ip.txt";//保存ip的txt文件名
$ip = $_SERVER['REMOTE_ADDR'];
$handle =fopen($file,'a');
fwrite($handle,"IP Address:");
fwrite($handle,"$ip");
fwrite($handle,"\n");
fclose($handele);
?>
2、然后访问你网站的镜像站点,在地址后面加…/ip.php,然后你就会在你网站根目录找到ip.txt文件了,打开就可以看到镜像站点的ip,复制里面的ip地址。
3、然后打开你的.htaccess文件,在后面加上如下代码(自行修改为刚刚获得的ip)
#添加IP黑名单
Order Deny,Allow
Deny from 180.97.106.161
这个时候你再刷新一下镜像站点,是不是已经403报错了呢?这个时候已经解决了这个镜像站点,然后就等待蜘蛛将其解决掉吧。
如果你在使用CDN,可以直接在CDN后台添加他的ip黑名单。
这个时候你再刷新一下镜像站点,发现已经403报错了。
方法二:一段JS代码解决镜像(已失效)
把下面js代码加入到
中,访问镜像网站就会直接跳转到源网站。if (document.location.host != "im.acirno.com") {
location.href = location.href.replace(document.location.host,'im.acirno.com');
}
注意:代码中的网址一定要填你的网站主网址。此方法简单有效,就算有网页被误导至镜像网站,也能很快的被“传送”回来,能防止绝大多数类似于此类的镜像站点,非常值得推荐。
方法三:
之前的JS方法已经失效,我写了一个针对wordpress的新js方法,通过拆分域名链接与镜像站比对,然后用img标签src空值触发onerror来执行js比对,比对失败则跳转回源站。
代码如下:(复制粘贴到主题的functions.php最后一个?>之前)
// 防镜像
add_action('wp_footer','kimsom_reverse_proxy_defense');
function kimsom_reverse_proxy_defense(){
$domain_arr = explode('//',home_url());
$domain = $domain_arr[1];
echo '';
}