Cum redirecționez dacă un utilizator încearcă să acceseze direct fișierele imagine numai în browser? Vreau să păstrez în continuare capacitatea de a permite site-urilor de socializare să încorporeze imaginile noastre prin hotlinking. Vreau doar dacă un utilizator acces direct imaginea prin browser pentru a redirecționa.
Aceasta este conf. mea nginx
proxy_cache_path /var/www/img.example.com/htdocs/cache-store levels=1:2 keys_zone=pixstore:10m max_size=5g inactive=7d use_temp_path=off;
Server {
nume_server img.example.com www.img.example.com;
access_log /var/log/nginx/img.example.com.access.log ;
error_log /var/log/nginx/img.example.com.error.log;
add_header X-Proxy-Cache $upstream_cache_status;
Locație / {
proxy_cache pixstore;
proxy_cache_revalidate on;
timeout eroare proxy_cache_use_stale la actualizarea http_500 http_502 http_503 http_504;
proxy_cache_lock activat;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://xxx.xxx.xxx.xxx:8090;
proxy_redirect dezactivat;
include proxy_params;
proxy_cache_valid 200 7d;
proxy_cache_valid 404 5m;
}
locație ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.( jpg|png|webp))$" {
referințe_valide nume_server;
if ($invalid_referer = "0") {
returnează 301 http://view.example.com/artwork/$filenum; }
}
}
jurnalul de erori nginx
2022/01/19 12:09:23 [eroare] 7426#7426: *30 open() "/usr/share/nginx/html/c/600x1200_90_webp/img-master/img/2021/06/09/00/ 00/05/90423484_p0_master1200.jpg" a eșuat (2: Nu există un astfel de fișier sau director), client: xxx.xxx.xxx.xxx, server: img.example.com, cerere: „GET /c/600x1200_90_webp/img-master/ img/2021/06/09/00/00/05/90423484_p0_master1200.jpg HTTP/1.1", gazdă: "img.example.com"
Redirecționarea nu funcționează, dar îmi dă o eroare 404 dacă încerc să accesez orice fișier imagine. Am configurat acest lucru ca site proxy invers, așa că nu am definit o cale rădăcină. Cum pot remedia asta?