
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;
}