为了更好保护小站内容,除了给图片添加水印外,如果用了CDN也可以非常方便的添加域名防止图片盗链。那如果所有资料都上传到了网站本地,怎么通过nginx配置实现防止图片盗链呢?另外,反向代理也是个头疼的事情,怎么实现禁止反向代理呢?
一、nginx防图片盗链:
还是比较简单的,只要配置一下nginx。找到"location ~ .*\.(jpg|jpeg|gif|png|bmp|swf)$ {...}",增加以下代码:
valid_referers none blocked leicong.net *.so.com *.sogou.com *.bing.cn *.toutiao.com *.google.com *.google.com.hk *.google.com.tw *.baidu.com;
if ($invalid_referer){
return 404;
}
**说明:**valid_referers对应的本站域名leicong.net及各大搜索引擎放行,其他域名引用本站图片资源则返回404错误。
P1.nginx配置防图片盗链过滤
测试效果:
P2.其他网站引用本站图片资源不再正常显示
二、网站禁止反向代理:
在header.php头文件中<head></head>中间合适位置添加一个js判断即可,原理同上。通过判断域名,非leicong.net的其他域名则弹窗提醒,并强制跳转到leicong.net。代码如下:
<script type="text/javascript">
if(document.location.host!="leicong.net"){
window.alert("注意,您正在访问的网站为恶意代理网站!请访问原站https://leicong.net");
location.href=location.href.replace(document.location.host,'leicong.net');
}
</script>
P3.header.php头文件<head></head>部分添加js防反向代理js
实现效果:
P4.非leicong.net域名获取网站内容时弹窗提醒