Làm cách nào để chuyển hướng nếu người dùng cố truy cập trực tiếp các tệp hình ảnh chỉ trong trình duyệt? Tôi muốn vẫn giữ khả năng cho phép các trang truyền thông xã hội nhúng hình ảnh của chúng tôi bằng liên kết nóng. Tôi chỉ muốn nếu người dùng truy cập trực tiếp hình ảnh bằng trình duyệt để chuyển hướng.
Đây là conf nginx của tôi
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;
người phục vụ {
server_name 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;
địa điểm / {
cửa hàng pixel proxy_cache;
bật proxy_cache_revalidate;
lỗi proxy_cache_use_stale hết thời gian cập nhật http_500 http_502 http_503 http_504;
bật proxy_cache_lock;
add_header X-Cache-Status $upstream_cache_status;
proxy_pass http://xxx.xxx.xxx.xxx:8090;
proxy_redirect tắt;
bao gồm proxy_params;
proxy_cache_valid 200 7d;
proxy_cache_valid 404 5m;
}
vị trí ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.( jpg|png|webp))$" {
tên_máy chủ hợp lệ;
nếu ($invalid_referer = "0") {
trả về 301 http://view.example.com/artwork/$filenum; }
}
}
nhật ký lỗi nginx
19/01/2022 12:09:23 [lỗi] 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" không thành công (2: Không có tệp hoặc thư mục như vậy), máy khách: xxx.xxx.xxx.xxx, máy chủ: img.example.com, yêu cầu: "NHẬN /c/600x1200_90_webp/img-master/ img/2021/06/09/00/00/05/90423484_p0_master1200.jpg HTTP/1.1", máy chủ lưu trữ: "img.example.com"
Chuyển hướng không hoạt động nhưng nó báo lỗi 404 nếu tôi cố truy cập bất kỳ tệp hình ảnh nào. Tôi thiết lập trang này làm trang web proxy ngược nên tôi không xác định đường dẫn gốc. Làm thế nào tôi có thể sửa lỗi này?