我想要根据用户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/; } }