none: 在请求头部没有”Referer” 字段
blocked: 请求头部中存在 “Referer” 字段,可是其值被防火墙或者代理服务器删除,此种状况会出现不是以”http://"和"https://"开始的
server_names: 请求头部包含服务器名
string: 定义一个服务器名,和一个可选的URI前缀,服务器名能够是以”*”结尾或者开始,不进行端口的检查html
正则表达式:
第一个符号应该使用”~”,而且匹配字符应该是从”http://"和"https://“nginx
Example: valid_referers none blocked server_names *.example.com example.* www.example.org/galleries/ ~\.google\.;
location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$
{
expires 7d;
valid_referers none blocked server_names *.test.com ;
if ($invalid_referer) {
return 403;
}
access_log off;
}
location ~ …:”~“表示后面内容执行一个正则匹配而且不区分大小写,而”~”表示执行正则匹配可是区分大小写 正则表达式
上面配置文件无做用,下载echo-nginx-module 在if($invalid_referer) 中加echo语句 能够看出并无执行到该语句bash