如何在nginx中获取$ host变量的一部分?

时间:2015-11-12 19:55:40

标签: nginx

我只需要获取$ host变量的一部分。域名为img1。 domain.com ,我需要获取“domain.com”,然后在重定向中使用它。

我这样做是错的:

$host ~* img[0-9]\.(.*);
set $host_without_img $1;

我知道它会起作用,如果我按照这样的IF条件投入:

if ($host ~* img[0-9]\.(.*)) {
  set $host_without_img $1;
}

但我不想在没有必要时使用IF。

1 个答案:

答案 0 :(得分:6)

您可以使用map,如下所示:

map $host $host_without_img {
    default ...;
    ~*img[0-9]\.(?<x_host_without_img>.*) $x_host_without_img;
}