Я хотел ограничить доступ к нашему разделу загрузок. Если пользователи / боты хотят загрузить файл без входа в систему, они увидят ошибку 403. Логика замечательная, но код получился очень некрасивый
location /downloads/ {
set $banforcookienotset 1;
if ($cookie_PHPSESSID) {
set $banforcookienotset 0;
}
if ($banforcookienotset = 1){
return 403;}
}
Есть лучший способ сделать это?
Да, но в моем примере вам все еще нужен 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 / {
..........
}
.........
}
}