看见我发的图了?相信大家也猜到了,我的网站被镜像了!那么我们不可能坐视网站一直被镜像,让自己网站都流量流向别人的腰包!那么我们要怎么做呢?网上找了很多代码都无效!
在这里分享几个逍遥实践过的切实有效的代码:
1、图片onerror与js代码方案
龙笑天下分享的通过拆分域名链接与镜像站比对,然后用img标签src空值触发onerror来执行js比对,比对失败则跳转回源站。
代码如下:(复制粘贴到主题的functions.php最后一个?>之前)
add_action('wp_footer','deny_mirrored_websites');
function deny_mirrored_websites(){
$currentDomain = 'luoxiao123." + "cn'; //此处自行拆分一下自己的域名即可
echo '';
}
html静态版本
是上面的变种,只是把上面卸载js中的用写在静态代码里了。将以下
以上两种方案都需要将代码中的域名替换为自己的域名!
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等方法!大家可以结合起来使用!方法多多,欢迎大家评论,分享更多切实有效的仿=防镜像站办法!