Nginx - 我如何知道$ http_referer未设置或为空?

时间:2011-05-03 09:23:39

标签: nginx request http-referer

我如何知道nginx变量$ http_referer何时未设置或为空?

我收到一些没有http referer的请求。在nginx日志中,$ http_referer显示如下:“ - ”。我想做的是“返回403;”如果$ http_referer未设置或为空,如本例所示。

谢谢!

3 个答案:

答案 0 :(得分:8)

http://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers

valid_referers server_names ~.;
if ($invalid_referer) {
    return   403;
}

答案 1 :(得分:1)

这个怎么样?

if ($http_referer ~ /^$/) {
    return 403;
}

答案 2 :(得分:1)

它对我有用,如下所示:

set $flag 0;
if ($http_referer = "-") {
    set $flag 1;
}
if ($flag = 1) {
    return 403;
}