正则表达式 – nginx子域重写

我需要一个nginx重写规则来重写:

http://some-keyword.example.com到www.example.com/keyword.php?keyword=$some-keyword

虽然前面没有www的域仍然会重写为www.example.com而www不会被视为关键字.

请问您能帮我解决这个问题,如何编写这两条规则?

最佳答案
如果你的意思是重定向,那么:

server {
  server_name ~^(.*)\.example\.com$;

  rewrite ^ http://www.example.com/keyword.php?keyword=$1 redirect;
}

在重写的情况下,然后简单地做

server {
  server_name example.com ~^(.*)\.example\.com$;

  rewrite ^ /keyword.php?keyword=$1 break;

#  location /keyword.php {
#    ....
#  }
}

转载注明原文:正则表达式 – nginx子域重写 - 代码日志