经常会遇到一些不讲武德的年轻人镜像别人网站,尤其以博彩、游戏网站等为主。虽然不知道他们有何居心,但是镜像后消耗我们流量那可是实打实的,另外对用户体验也不是很好,至于SEO有没有影响,这个倒是想不出能有啥影响。
具体表现为打开先是显示我们网站,随后跳转至他自己的页面,域名也是他们自己的域名,我们更新他们也跟着更新,这说明你被镜像啦。
以我的网站为例,apache + php
一,禁止访问
这个是最先想到的一点,我把你的IP给封了,你还怎么镜像我?但是镜像的网站一般会用nginx代理,也就是说你ping到的IP也许并不是真实的IP,那么我们怎么去查看他的真实IP呢?
我们可以通过一段脚本,在其根目录生成一个文件,用来记录该IP,比如:
<?php //保存的文件名 $file = "ip.txt"; $ip = $_SERVER['REMOTE_ADDR']; $handle =fopen($file,'a'); fwrite($handle,"IP Address:"); fwrite($handle,"$ip"); fwrite($handle,"\n"); fclose($handele); ?>
多刷新几次,基本上他的IP就被获取完了,然后再对IP进行封禁。
比如在根目录新建.htaccess文件,写入如下
Order Allow,Deny Allow from all Deny from 192.168.1.100 192.168.1.101 #多个IP用空格隔开
也可以在重写规则里这么写
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{http:X-Forwarded-For}&%{REMOTE_ADDR}&%{http:X-Real-IP} (192.168.1.100) [NC] RewriteRule (.*) - [F] </IfModule>
可能需要重启apche服务才行,所以虚拟主机用户要是添加后没效果就弃用吧
二,禁止访问资源
他们既然是镜像,也就是从我们服务器拉取资源,那我们禁止其访问我们的静态资源可行否?
同样在.htaccess文件中写入
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] #允许空“HTTP_REFERER”的访问,即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示,此行可以删除 RewriteCond %{HTTP_REFERER} !wangdahai.cn [NC] RewriteCond %{HTTP_REFERER} !youdao.com [NC] RewriteCond %{HTTP_REFERER} !zhuaxia.com [NC] RewriteCond %{HTTP_REFERER} !twitter.com [NC] RewriteCond %{HTTP_REFERER} !facebook.com [NC] RewriteCond %{HTTP_REFERER} !xianguo.com [NC] RewriteCond %{HTTP_REFERER} !google.cn [NC] RewriteCond %{HTTP_REFERER} !google.com [NC] RewriteCond %{HTTP_REFERER} !google.com.tw [NC] RewriteCond %{HTTP_REFERER} !google.com.sg [NC] RewriteCond %{HTTP_REFERER} !google.com.hk [NC] RewriteCond %{HTTP_REFERER} !bloglines.com [NC] RewriteCond %{HTTP_REFERER} !soso.com [NC] RewriteCond %{HTTP_REFERER} !mail.qq.com [NC] RewriteCond %{HTTP_REFERER} !cn.bing.com [NC] RewriteCond %{HTTP_REFERER} !image.baidu.com [NC] RewriteCond %{HTTP_REFERER} !feedburner.com [NC] RewriteCond %{HTTP_REFERER} !feedsky.com [NC] RewriteRule .(gif|png|jpg)$ https://www.wangdahai.cn [R,NC,L] #以上图片后缀资源跳转到制定路径
三,通过JS脚本反向控制
正所谓以其人之道还治其人之身,你代理用的自然是我的代码,那么我们完全可以通过脚本来搞点事情,比如:
我们写一个div使其覆盖镜像网页,默认是隐藏的,当JS判断域名不是我们自己的域名时,使其显示
<style> #cnm{display:none;width:100%;height:100%;margin:auto;background:#fff;z-index:1000;left:0;right:0;top:0;bottom:0;position:fixed;z-index: 2147483647!important;text-align:center;font-size: 28px;font-weight: bold;padding-top: 100px;} </style> <script type="text/javascript"> if (document.location.host != "www.wangdahai.cn") { window["document"]["writeln"]("<style>#cnm{display:block!important;}</style>"); } </script> <div id="cnm"> <p>友情提示:你现在浏览的网站是镜像网站,请认准原网站域名:<span style="color:blue">www.wangdahai.cn</span></p> <p style="color:red;margin-top:30px">年轻人不讲武德,再发现镜像,提交公安处理,耗子尾汁!!!</p> </div>
效果如下:
Warning: A non-numeric value encountered in /www/wwwroot/www.wangdahai.cn/wp-content/themes/dux/modules/mo_comments_list.php on line 63
6啊