我目前有一个以前在本地托管图像的托管网站。 在当前系统之前,图像链接是从根文件夹
引用的EG:
https://example.com/image.jpg
我们已经转移到AWS S3存储,为了将旧图像请求定向到S3,我们将以下内容添加到我们的nginx conf文件中。
location ~* ^/.*\.(jpg|gif|png|jpeg) {
rewrite ^/(.*)$ "$scheme://i.example.com/$1" permanent;
}
然而,这会捕获域中的所有图像文件。
有没有办法只重定向根域上的图像请求请求并忽略其他文件夹?
例如,用户头像存储在本地
中https://example.com/content/images/user/qwerty.jpg
由于正则表达式,这些会被重定向到子域。
我还尝试使用S3 proxy_pass。但结果是一样的。
感谢您的帮助
答案 0 :(得分:1)
要仅选择顶级目录中的图像文件,您应该将正则表达式的.*
元素替换为与/
不匹配的内容。如:
location ~* ^/[^/]*\.(jpg|gif|png|jpeg)$ {
return 301 $scheme://i.example.com/$request_uri;
}