9

在 nginx 中,有没有办法只允许具有与当前位置名称匹配的引用者的客户端访问“位置”?

这是场景:

http://foooooo.com/bar.org/

http://foooooo.com/zeta.net/

等等等等

我希望 bar.org 位置的内容仅在引荐来源为 bar.org 时才可用。zeta.net 也是如此

我知道我可以“静态地”做到这一点,但是有很多这样的位置,我需要找到一种方法来做到这一点,只定义一个“动态”位置。

对不起,我的英语不好。

解决方案

我已经这样解决了:

location ~/([a-zA-Z0-9\.\-]*)/* {
    set $match "$1::$http_referer";
    if ($match !~* ^(.+)::http[s]*://[www]*[.]*\1.*$ ) {
        return 403;
    }
}
4

2 回答 2

13
location ~ ^/([a-zA-Z0-9\.\-]*)/(.*) {
    if ($http_referer !~ "^$1.*$"){
            return 403;
    }
}
于 2013-09-20T12:38:31.873 回答
2
location /india/xxxxx.js {
    if ($http_referer !~ "http://domain.xxx/"){
            return 403;
    }
}

我用细微的变化解决了我的问题,谢谢

于 2019-11-06T06:21:26.337 回答