Как перенаправить, если пользователь пытается получить прямой доступ к файлам изображений только в браузере? Я хочу сохранить возможность разрешать сайтам социальных сетей вставлять наши изображения с помощью хотлинков. Я просто хочу, только если пользователь напрямую обращается к изображению с помощью браузера для перенаправления.
Это моя конфиг nginx
proxy_cache_path /var/www/img.example.com/htdocs/cache-store level=1:2 keys_zone=pixstore:10m max_size=5g inactive=7d use_temp_path=off;
сервер {
имя_сервера img.example.com www.img.example.com;
журнал_доступа /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;
место расположения / {
прокси_кэш пиксстор;
proxy_cache_revalidate включен;
proxy_cache_use_stale ошибка тайм-аут обновления http_500 http_502 http_503 http_504;
proxy_cache_lock включен;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://xxx.xxx.xxx.xxx:8090;
прокси_перенаправление выключено;
включить proxy_params;
proxy_cache_valid 200 7 дней;
proxy_cache_valid 404 5 м;
}
location ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.( jpg|png|webp))$" {
действительные_рефереры имена_серверов;
если ($invalid_referer = "0") {
вернуть 301 http://view.example.com/artwork/$filenum; }
}
}
журнал ошибок nginx
19.01.2022, 12:09:23 [ошибка] 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" не удалось (2: Нет такого файла или каталога), клиент: xxx.xxx.xxx.xxx, сервер: img.example.com, запрос: "GET /c/600x1200_90_webp/img-master/ img/2021/06/09/00/00/05/90423484_p0_master1200.jpg HTTP/1.1", хост: "img.example.com"
Перенаправление не работает, но выдает ошибку 404, если я пытаюсь получить доступ к каким-либо файлам изображений. Я настроил это как обратный прокси-сайт, поэтому я не определял корневой путь. Как я могу это исправить?