具有相同子域的通配符域的nginx重写规则

时间:2014-11-02 15:57:54

标签: regex mod-rewrite nginx

我希望有人可以提供帮助,因为我完全糊涂了。我花了很长时间在网上看,但我在语法上迷失了方向,而且我觉得我试图让事情过于复杂。

无论如何,我想做的是,有一个nginx重写条件,它将具有相同images子域的所有域指向具有自己的子文件夹的通用images文件夹。

示例:

  • images.domain1.com指向/root/to/nginx/images/domain1.com /
  • images.domain2.com指向/root/to/nginx/images/domain2.com /

我找到了一篇文章,其中某人使用server_name="~^(?<sub>.+)\.domain\.tld$"之类的内容并将根指向/root/to/nginx/domain.com/$sub - 但当我尝试使用不同的组合将正则表达式重新调整为server_name="~images\.(?<domain>)$"之类的内容时到/root/to/nginx/images/$domain,它没有成功重写。

非常感谢能够对此有所了解的任何人。

1 个答案:

答案 0 :(得分:1)

server_name指令不采用等号。您的捕获组也是空的。

您应该使用server_name ~^images\.(?<domain>.+)$;

路径正确(/root/to/nginx/images/$domain)。