Nginx 将图像 URL 重写到另一个域

Nginx 将图像 URL 重写到另一个域

我在原始服务器上有文件夹结构,如 /images/2020/07/09/imagename.jpg,并将其全部移动到子域上与 s3 兼容的存储中,略微改变了文件夹结构。现在很难做出正确的重定向,以防有人直接访问图像或之前已使用旧 URL 嵌入到某个地方。

所以问题是如何让 Nginx 从 https://originsite.com/**images**/2020/07/09/imagename.jpg/png/etc。 到 https://media.originsite.com/**folder**/2020/07/09/imagename.jpg/png/etc

非常感谢您的帮助。

答案1

在没有看到您的 nginx 配置的情况下,以下是最佳猜测。

location ~ "^/images/(?<year>[0-9]{4})/(?<month>[0-9]{2})/(?<day>[0-9]{2})/(?<filename>.+\.(?:jpg|png))$" {
    return 301 https://media.originsite.com/foldder/$year/$month/$day/$filename;
}

我们将 URL 路径的特定部分捕获到变量中,然后使用这些变量形成实际的重定向 URL。

您的其余 nginx 配置可能会影响其工作方式。

相关内容