доступные переменные для NGINX

доступные переменные для NGINX

Я хочу отдать необработанный файл, если на него делается хотлинк, но переписать URL-адрес, если кто-то посещает файл в своем браузере.

Я видел этот пример хотлинкинга несколько раз:

location /pictures/ {
   valid_referers none blocked mywebsite.com *.mywebsite.com;
   if ($invalid_referer) {
      return   403;
  }
}

НО как мне ссылаться на действительные рефереры? Я пытаюсь обслужить запрошенный необработанный файл, если на него ссылаются с другой страницы (горячая ссылка).

Если кто-то просматривает этот файл в браузере, я хочу добавить немного HTML (т. е. переписать на другой URL);

Какие переменные доступны помимо $invalid_referer?

Я пробовал:

if( !$invalid_referer){
    return 403; #allow hot-linking only;
}

И не вижу никаких упоминаний о других доступных переменных в документации.http://nginx.org/en/docs/http/ngx_http_referer_module.html

решение1

Вы можете проверить стоимость$invalid_referer

ИзДокументация:

Указывает значения полей заголовка запроса «Referer», которые приведут к установке встроенной переменной $invalid_referer в пустую строку. В противном случае переменная будет установлена ​​в «1». Поиск совпадений нечувствителен к регистру.

if($invalid_referer = ""){
    return 403; #allow hot-linking only;
}

Вы также можете сделать

if($invalid_referer != "1"){
    return 403; #allow hot-linking only;
}

Связанный контент