防盗,防盗,防止被盗...单从字面意思理解就晓得它的用途,根据自己的实践,防盗链的使用比较常见的有以下几种方法:
1.针对不同目录
2.针对不同的文件类型
3.实现防盗链和expires的方法
1.针对不同目录:
location /www/ {
root /var/www/;
valid_referers none blocked server_names *.aaa.com http://localhost baidu.com;
if ($invalid_referer) {
rewrite ^/ ;
#return 403;
}
}
root /var/www/;
valid_referers none blocked server_names *.aaa.com http://localhost baidu.com;
if ($invalid_referer) {
rewrite ^/ ;
#return 403;
}
}
2.针对不同的文件类型:
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {
valid_referers none blocked server_names *.aaa.com aaa.com http://localhost baidu.com;
if ($invalid_referer) {
rewrite ^/ ;
# return 403;
}
}
valid_referers none blocked server_names *.aaa.com aaa.com http://localhost baidu.com;
if ($invalid_referer) {
rewrite ^/ ;
# return 403;
}
}
3.实现防盗链和expires的方法:
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ {
valid_referers none blocked server_names *.aaa.com aaa.com http://localhost ; #涉及到的连接
if ($invalid_referer) {
rewrite ^/ ; #这条很重要哦..
}
access_log off; #日志功能关闭
root /var/www; #根目录
expires 2d; #时间周期
break;
}
valid_referers none blocked server_names *.aaa.com aaa.com http://localhost ; #涉及到的连接
if ($invalid_referer) {
rewrite ^/ ; #这条很重要哦..
}
access_log off; #日志功能关闭
root /var/www; #根目录
expires 2d; #时间周期
break;
}
在使用这些代码的时候,请注意你自己的根目录的路径,,及其需要做防盗链的域名,文件类型也好,目录也好。
关于防盗链也可以使用第三方模块,HttpAccessKeyModule,这里就不细谈。哈哈
转载于:https://blog.51cto.com/ready/966509