variáveis ​​disponíveis para NGINX

variáveis ​​disponíveis para NGINX

Quero servir um arquivo bruto se ele estiver sendo vinculado, mas reescrever o URL se alguém estiver visitando o arquivo no navegador.

Já vi este exemplo de hotlinking algumas vezes:

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

MAS, como posso me referir a referenciadores válidos? Estou tentando servir o arquivo bruto solicitado se ele estiver sendo vinculado a outra página (hot link).

Se alguém estiver visualizando esse arquivo em um navegador, quero adicionar algum HTML (ou seja, reescrever para outro URL);

Quais variáveis ​​estão disponíveis além de $invalid_referer?

Eu tentei:

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

E não vejo nenhuma menção a outras variáveis ​​disponíveis na documentação.http://nginx.org/en/docs/http/ngx_http_referer_module.html

Responder1

Você pode verificar o valor de$invalid_referer

DeDocumentação:

Especifica os valores do campo do cabeçalho da solicitação “Referer” que farão com que a variável $invalid_referer incorporada seja definida como uma string vazia. Caso contrário, a variável será definida como “1”. A pesquisa por uma correspondência não diferencia maiúsculas de minúsculas.

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

você também poderia fazer

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

informação relacionada