溫馨提示×

如何利用rewrite實(shí)現(xiàn)防盜鏈

小樊
82
2024-09-09 11:18:57
欄目: 編程語言

防盜鏈?zhǔn)且环N保護(hù)網(wǎng)站資源的方法,可以防止其他網(wǎng)站直接引用你的資源。通過使用rewrite規(guī)則,我們可以實(shí)現(xiàn)防盜鏈功能。以下是一個(gè)示例配置,展示了如何在Nginx中使用rewrite實(shí)現(xiàn)防盜鏈:

  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結(jié)尾的請求,我們將檢查請求頭中的Referer字段。valid_referers指令定義了允許的來源,包括none(直接輸入U(xiǎn)RL訪問)、blocked(空的Referer)、yourdomain.com和所有以.yourdomain.com為后綴的域名。

  1. 如果Referer不在允許的列表中($invalid_referer為真),則使用rewrite指令將請求重定向到一個(gè)名為forbidden.html的自定義頁面。你可以根據(jù)需要修改這個(gè)頁面的URL。

  2. 保存配置文件并重啟Nginx服務(wù)。在Debian/Ubuntu系統(tǒng)上,可以使用以下命令:

sudo service nginx restart

在CentOS/RHEL系統(tǒng)上,可以使用以下命令:

sudo systemctl restart nginx

現(xiàn)在,當(dāng)其他網(wǎng)站試圖直接引用你的圖片、視頻等資源時(shí),將會(huì)被重定向到一個(gè)自定義的禁止訪問頁面。

0