Если не cookie, установленный в nginx
Я хотел ограничить доступ к нашему разделу загрузок. Если пользователи / боты захотят загрузить файл без входа в систему, они увидят ошибку 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 / {
..........
}
.........
}
}