1 votes

variables disponibles pour NGINX

Je veux servir un fichier brut s'il fait l'objet d'un lien hypertexte, mais réécrire l'url si quelqu'un visite le fichier dans son navigateur.

J'ai vu cet exemple de hotlinking à plusieurs reprises :

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

MAIS, comment puis-je me référer à des référents valides ? J'essaie de servir le fichier brut demandé s'il est lié à une autre page (hot linked).

Si quelqu'un consulte ce fichier dans un navigateur, je veux ajouter du HTML (c'est-à-dire réécrire vers une autre URL) ;

Quelles sont les variables disponibles autres que $invalid_referer ?

J'ai essayé :

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

Et je ne vois aucune mention d'autres variables disponibles dans la documentation. http://nginx.org/en/docs/http/ngx_http_referer_module.html

1voto

Peter Lamby Points 251

Vous pouvez vérifier la valeur de $invalid_referer

A partir de la Documentation :

Spécifie les valeurs du champ d'en-tête de requête "Referer" qui entraîneront la définition d'une chaîne vide dans la variable intégrée $invalid_referer. Dans le cas contraire, la variable prendra la valeur "1". La recherche d'une correspondance est insensible à la casse.

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

vous pouvez également faire

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X