如何在NGINX中获取URL的子域名

我想要根据用户input的子域来进行redirect。

例如:

<subdomain>.example.com/admin -> <subdomain>.myurl.com

理想情况下,我想将<subdomain>作为parameter passing给我的redirectURL。

我正在看这件事:

 location ~ (sub).(somewhere).(com)/(some)(thing)/(something)(else) { set $var1 = $1; # =sub in above example set $var2 = $2; # =somewhere in above example set $var3 = $3; # =com in above example set $var4 = $4; # =some in above example set $var5 = $5; # =thing in above example set $var6 = $6; # = something in above example set $var7 = $7; # = elsein above example rewrite ^ $1/$2 last; # would be sub/somewhere } 

基于这篇文章在这里: 操纵或拆分string (我认为variables集的语法在这个例子是错误的,但你得到的要点)。

URL的域名部分不是由location指令测试的。 您将需要在server_name指令中使用命名捕获。 详情请参阅此文件 。

例如:

 server { server_name ~^(?<name>\w+)\.example\.com$; location /admin { return 301 $scheme://$name.myurl.com/; } }