Nginx 怎么禁止别人恶意镜像网站?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 怎么禁止别人恶意镜像网站?相关的知识,希望对你有一定的参考价值。

nginx 怎么禁止别人恶意镜像网站?

目前的方法只能当你发现恶意镜像站点后,通过在自己服务器配置文件中禁止对方服务器IP的访问。 参考技术A 拉黑ip,开防盗链之类的功能都很好解决,或者代码判断访问域名,不是自己的要跳转到自己这边。 参考技术B 一、使用 .htaccess 禁止反向代理
在站点根目录下新建 .htaccess 文件,然后添加如下的内容:
RewriteEngine On
RewriteBase /
php_value auto_append_file proxy.php
再新建 proxy.php 文件,添加如下代码保存.
<?php
$f = getenv("HTTP_X_FORWARDED_FOR");
$url = "http://www.xiariboke.com";
if ($f!="")
print "“;
print ““;

?>
二、使用 js 代码判断域名
<script type="text/javascript">
if (document.domain != 'xiariboke.com' && document.domain != 'www.xiariboke.com')
window.location.href='http://www.xiariboke.com/';

</script>
这种是首先判断他的域名是不是 xiariboke.com 这个域名,如果是则正常访问,如果不是则跳转到原网站。
PS:张戈博主分享的 JS 优化方案,只需要将以下 JS 代码放在<head></head>中间就可以了
<script type="text/javascript">
if (document.location.host != "boke112.com")
location.href = location.href.replace(document.location.host,'boke112.com');

</script>
三、使用 php 判断域名
这种方法跟使用 js 代码来跳转域名是一个道理,都是先判断域名,如果是代理的域名则进行跳转,代码如下:
<P><?php </P>
<P>if($_SERVER['SERVER_NAME'] != 'xiariboke.com' ||$_SERVER['SERVER_NAME'] != 'www.xiariboke.com' )

exit('非法反向代理访问');
</P>
<P>?></P>
如果是时时代理的话,上面三种方法就已经足够了,但如果他使用了缓存,将代理的网站缓存到他自己的服务器上面,再使用这些就不管用了。因他被他代理的站都不更新了,你再怎么改都不行,尤其现在的阿里云 CDN、360CDN 又这么牛,而我的站点使用的就是阿里云CDN,上面有个防止外链,把防外链给开启才解决。
一般的网站 CSS,JS 调用基本上用的都是绝对路径,所以我们可以重命名CSS,JS的文件包以达到对别人境像网站的控制,把他的页面搞乱,这样相信坚持不了几天,他就会换成其它网站了。

以上是关于Nginx 怎么禁止别人恶意镜像网站?的主要内容,如果未能解决你的问题,请参考以下文章

我的网站被恶意域名指向了,请教nginx该怎么设置

结合Nginx反向代理搭建域名被墙网站的镜像网站

用Nginx禁止国外IP访问我的网站...

防止恶意解析——禁止通过IP直接访问网站

nginx反向代理网站镜像

nginx反向代理网站镜像