温馨提示×

如何利用rewrite实现防盗链

小樊
81
2024-09-09 11:18:57
栏目: 编程语言

防盗链是一种保护网站资源的方法,可以防止其他网站直接引用你的资源。通过使用rewrite规则,我们可以实现防盗链功能。以下是一个示例配置,展示了如何在Nginx中使用rewrite实现防盗链:

  1. 打开Nginx配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default

  2. server块中,添加以下配置:

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
    valid_referers none blocked yourdomain.com *.yourdomain.com;
    if ($invalid_referer) {
        rewrite ^/ http://example.com/forbidden.html redirect;
    }
}

这里的配置表示,对于以.gif.jpg.jpeg.png.bmp.swf结尾的请求,我们将检查请求头中的Referer字段。valid_referers指令定义了允许的来源,包括none(直接输入URL访问)、blocked(空的Referer)、yourdomain.com和所有以.yourdomain.com为后缀的域名。

  1. 如果Referer不在允许的列表中($invalid_referer为真),则使用rewrite指令将请求重定向到一个名为forbidden.html的自定义页面。你可以根据需要修改这个页面的URL。

  2. 保存配置文件并重启Nginx服务。在Debian/Ubuntu系统上,可以使用以下命令:

sudo service nginx restart

在CentOS/RHEL系统上,可以使用以下命令:

sudo systemctl restart nginx

现在,当其他网站试图直接引用你的图片、视频等资源时,将会被重定向到一个自定义的禁止访问页面。

0