5

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

我收到一些没有 http 引用的请求。在 nginx 日志中 $http_referer 看起来像这样:“-”。我想做的是“返回403;” 如果 $http_referer 在这种情况下未设置或为空。

谢谢!

4

3 回答 3

10

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

valid_referers server_names ~.;
if ($invalid_referer) {
    return   403;
}
于 2011-05-03T09:31:04.440 回答
1

这个怎么样?

if ($http_referer ~ /^$/) {
    return 403;
}
于 2016-12-29T21:59:12.667 回答
1

它对我有用,如下所示:

set $flag 0;
if ($http_referer = "-") {
    set $flag 1;
}
if ($flag = 1) {
    return 403;
}
于 2020-02-26T10:41:14.907 回答