我试图仅重定向来自特定目录前缀的静态文件请求,当它们为 404 时。
我已经尝试过使用 try_files 并且它可能仍然可以正常工作,但到目前为止它对我来说还没有。
这是场景;
请求https://example.com/forums/uploads/file.jpg 文件 404 重定向到https://cdn.example.com/file.jpg
这是我发现棘手的路径变化。
我不认为这是可能的,但在 CDN 上检查非 404 也很好。
解决方案(基于接受的答案);
location ~* /forums/uploads {
try_files $uri @rewriteimages;
}
location @rewriteimages {
rewrite ^/forums/uploads(.*)$ https://cdn.example.com$1 redirect;
}
您要检查本地文件是否存在,如果该文件不存在,则将客户端重定向到外部 URL。
您可以使用
try_files
来测试本地文件是否存在,并将rewrite
客户端重定向到外部 URL。例如:
有关更多信息,请参阅此文档。
重定向到 CDN 后,Nginx 不参与解析 URL。