nginx 目录内所有文件的 valid_referer

nginx 目录内所有文件的 valid_referer

我有这个配置

location /mirror/files {
    valid_referers none server_names example.com *.example.com;
         if ($invalid_referer) {
            rewrite ^/(.*)$ http://example.com/;
        }
    index index.php;
}

如果我访问一个链接http://example.com/mirror/files/test.zip引用者以“”开头http://example2.com“我可以访问该文件。如何让它工作?更新:我可以从服务器日志中看到 referer 已发送,因此它不为空。

答案1

好的,原因是我使用了 localhost referer(我的本地开发环境),显然 nginx 会将其视为来自本地服务器,这很愚蠢,因为如果它是本地的,也应该检查 IP。

解决方案是使用真实域名作为引用者或将本地服务器设置为除 localhost 之外的其他服务器名称。

相关内容