我想限制对我们下载部分的访问。如果用户/机器人想要在未登录的情况下下载文件,他们将看到 403 错误。逻辑很棒,但结果却是非常丑陋的代码
location /downloads/ {
set $banforcookienotset 1;
if ($cookie_PHPSESSID) {
set $banforcookienotset 0;
}
if ($banforcookienotset = 1){
return 403;}
}
有一个更好的方法吗?
答案1
是的,但是在我的例子中你仍然需要 IF。
https://nginx.ru/en/docs/http/ngx_http_map_module.html
http {
...........
map $cookie_PHPSESSID $ban {
default '';
'' 1;
...........
}
server {
server_name example.com;
if($ban) {return 403;}
location / {
..........
}
.........
}
}