verfügbare Variablen für NGINX

verfügbare Variablen für NGINX

Ich möchte eine Rohdatei bereitstellen, wenn ein Hotlink dazu erstellt wird, aber die URL neu schreiben, wenn jemand die Datei in seinem Browser aufruft.

Ich habe dieses Hotlinking-Beispiel ein paar Mal gesehen:

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

ABER, wie kann ich auf gültige Referrer verweisen? Ich versuche, die angeforderte Rohdatei bereitzustellen, wenn von einer anderen Seite darauf verwiesen wird (Hotlink).

Wenn jemand die Datei in einem Browser anzeigt, möchte ich etwas HTML hinzufügen (d. h. in eine andere URL umschreiben).

Welche Variablen sind außer verfügbar $invalid_referer?

Ich habe es versucht:

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

Und ich kann in der Dokumentation keine Erwähnung anderer verfügbarer Variablen finden.http://nginx.org/en/docs/http/ngx_http_referer_module.html

Antwort1

Sie können den Wert von$ungültiger_Referer

Von demDokumentation:

Gibt die Werte des Anforderungsheaderfelds „Referer“ an, die dazu führen, dass die eingebettete Variable $invalid_referer auf eine leere Zeichenfolge gesetzt wird. Andernfalls wird die Variable auf „1“ gesetzt. Bei der Suche nach einer Übereinstimmung wird die Groß-/Kleinschreibung nicht beachtet.

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

Sie könnten auch tun

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

verwandte Informationen