网站镜像是什么?如何判断?
一些做 SEO 的伙伴发现自己在百度搜索自己的网站的时候出现了域名不同但是内容完全和我们自己网站一样的网站这种情况就可以判断为我们自己的网站被别人镜像了。最简单的查看方法就是在百度上面搜索:intitle 我们网站的标题 比如搜索:intitle 快排科技 - 网络营销学习全网整合营销推广工具软件互联网营销资源站百度快速排名彐金手指排名13比如搜索:intitle 快排科技 - 网络营销学习全网整合营销推广工具软件互联网营销资源站如果百度上出现了很多标题一样但是域名不一样的网站这个就说明了网站被镜像了。
网站被恶意镜像后有哪些危害?
那么到底什么是镜像呢?恶意镜像又被称为恶意解析也被称作为恶意克隆。一般是别人用一些特殊的技术手段将我们的网站完全复制一个出来。除了域名不同网站的内容完全和我们的网站相同。这些镜像网站的工作原理一般是当用户访问镜像的网站的时候这个网站的程序就会自动来原网站来调取数据然后修改相关的链接之后展现给用户这种实际上系统资源还是利用的原来的站点的。这样用户和搜索引擎无法分辨哪个是真正的站点哪个是镜像出来的站点。所以就会有可能导致正版网站有可能被搜索引擎停止收录甚至删除已经被收录过的页面。并且如果他的这个域名有不健康的内容那么有可能我们的站点也会受到相应的污染严重者会被拦截报毒或者 K 站的情况。
那么我们应该怎么处理网站镜像呢?
1.通过屏蔽 IP 来防护网站被镜像
我们知道网站镜像的原理就是别人采集复制我们的网站或者直接解析我们的网站内容进行展现所以我们只需要屏蔽掉对方网站主机的 IP 即可。下面就以 wordpress 程序为例其他程序的请自己测试。
我们首先要获取对方服务器的 IP这个 IP 有可能是对方域名所绑定的 IP也有可能不是这个我们可以通过网站日志查看下哪些 IP 访问异常。如果对方是解析我们网站的话我们可以通过下面的方法来获取对方的 IP。首先复制下面的代码新建一个 php 文件然后命名成“ip.php”上传到你的网站根目录。
然后访问镜像了你网站的站点在地址后面加上 这段代码然后你的网站根目录会出现 ip.txt 文件我们打开这个文件之后就会看到一个 IP 地址。IP 获取之后我们就需要屏蔽对方的 IP以 wordpress 为例我们找到网站的根目录的.htaccess 文件。我们编辑下这个文件我们添加如下的代码(代码里的 IP 修改成我们从 ip.txt 里面复制的 IP):
#添加 IP 黑名单Order Deny,AllowDeny from 162.158.72.179
如果你的网站采用的 CDN 加速的话我们可以直接在 CDN 后台添加 IP 黑名单。此时如果你刷新下镜像的网站如果对方网站是 403 报错的话就说明我们已经处理完毕了百度快速排名服务就说明我们已经处理完毕了剩下的就交给蜘蛛来处理了。
2.通过 js 来防护网站被镜像
在网站的头部(也被称作为页眉或者 head)
标签里面添加以下代码:
if (document.location.host !="")
或者加上以下 js 代码
rthost=window.location.host;if (rthost !="") {top.location.href="https://www.seo56.cn/";}
需要注意的是代码中的 域名要换成你的主域名如果填写错误的话会导致网站一直在刷新的状态。但是这个也是有缺点的如果对方的镜像网站屏蔽了 js 的话这个方法是不能用的所以方法 1 和方法 2 结合使用效果更佳。
3.如果对方屏蔽了 js应该如何防止被镜像?
找到网站的页眉也就是 header.php 文件我们编辑这个文件添加如下代码:
proxy2016=false;
有些网站是屏蔽 js 代码比如下面的这个:
...
所以
proxy2016=false;
代码将被过滤掉img 的 onerror 设置超时时间 3000 毫秒将运行函数部分检测是否还存在 proxy2016 字符如果没有找到就会将主机的 URL 改为 为了安全起见将 js 部分可以使用 js 代码混淆可以使用站长工具进行代码混淆《代码混淆工具》比如本站的混淆结果如下:
proxy2016=false;
经过测试这代码在 Chrome、IE11、360 极速浏览器上都有效并且会跳转到原来网站的文章页如果需要火狐浏览器生效的话需要将代码里面的 img 标签的 src 地址修改成空或者无效图片地址就可以了。
4.借助 img 的 Onerror 事件来进行跳转防止镜像
此方法就是通过拆分域名与镜像站对比然后用 img 标签 src 空值触发 onerror 来执行 js 比对比对失败则跳转回源站。
①、WordPress 专用版
具体的代码如下需要复制到 functions.php 最后一个?>之前:
add_action('wp_footer','lxtx_deny_mirrored_Websites');function lxtx_deny_mirrored_websites(){ $currentDomain='www" + ".5izz." + "com'; // $currentDomain='"zhangge." + "net"'; echo '';}
Ps:如果是丢到 wp_head经过测试发现图片放到 head浏览器会自动进行错误调整导致一些本来在 head 的元素被丢到了 body 当中比如 style.css估计网页标准中 head 里面就不应该放置图片所以移到了 footer 当中。
或者这段代码
add_action('wp_footer','lxtx_deny_mirrored_websites');function lxtx_deny_mirrored_websites(){ $currentDomain="www' + '.5izz.' + 'com"; // $currentDomain="zhangge' + '.' + 'net"; echo '';}
或者这段代码
add_action('wp_footer','lxtx_kimsom_reverse_proxy_defense', 99);function lxtx_kimsom_reverse_proxy_defense(){ $currentDomain='"www." + "5izz" + ".com"'; echo '';}
②、htmL 通用版
既然是利用 js 代码那么就能用到如何 HTMl 页面当中了。要不是为了可以放到 wp 的 functions.php都没必要写成 php 的模式直接用 html 代码即可:
将以上代码中的: var currentDomain="www." + "5izz" + ".com"; 自行拆分成自己的域名避免被镜像代码替换掉比如: var currentDomain="jszseo." + "com";
然后将代码添加到网站的之后即可(不建议放置到里面具体原因上文已说明)这个版本适合任何网页。
5:通过禁止某些 User Agent 特征来防止镜像
①、php 通用版:
把下面的代码放在 index.php 中的第一个 如果使用上面的 php 版本WordPress 每次更新就会需要操作 index.php比较麻烦因此弄个专版。
将下面的代码贴到 functions.php 中的最后一个?>之前即可:
add_action('wp_head', 'lxtx_deny_mirrored_request', 0);function lxtx_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('请勿采集本站否则会娶不到老婆喝凉水都塞牙!请正常访问并认准[快排科技]官方网址!');}else{ foreach($now_ua as $value ) if(eregi($value,$ua)) { header("Content-type: text/html; charset=utf-8"); wp_die('请勿采集本站否则会娶不到老婆喝凉水都塞牙!请正常访问并认准[快排科技]官方网址!'); }}}
经过测试在 functions.php 中加入此代码后打开镜像站后显示“Internal Server Error”强制刷新后显示我们设置好的提示文字“请勿采集本站否则会娶不到老婆喝凉水都塞牙!请正常访问并认准[快排科技]官方网址!”。
{[黑帽SEO]网站镜像对SEO有哪些影响需要怎么处理}