Nginx重写URL以包含通配符子域并同时更改域后缀

时间:2017-04-21 18:48:02

标签: url redirect nginx url-rewriting

需要一些帮助......我需要在nginx中重写本地图像的网址。这是一些规则。

如果图像不在文件系统上,则重写URL。 url可以是通配符子域 域后缀需要更改为.com

举个例子

a.example.dev -> a.example.com

b.example.dev -> b.example.com

*.example.dev -> *.example.com

最后我需要附加图片网址,这是一个完整的例子

原始

http://www.engineering.example.dev/files/2015/05/filename.gif

最终

http://www.engineering.example.com/files/2015/05/filename.gif

原始

http://www.example.dev/files/2015/05/filename.gif

最终

http://www.example.com/files/2015/05/filename.gif

任何帮助都会受到极大的关注。

1 个答案:

答案 0 :(得分:1)

regular expression server name可以在命名捕获中收集通配符子域。然后,您可以使用try_files有条件地重定向到.com域。

例如:

server {
    server_name  "~^(?<name>.+)\.dev$";

    root /path/to/root;

    location / {
        try_files $uri @redirect;
    }
    location @redirect {
        return 301 $scheme://$name.com$request_uri;
    }
}