如何在 NGINX 中获取 URL 的子域
How to get subdomain of URL in NGINX
我想根据用户输入的子域进行重定向。
例如:
<subdomain>.example.com/admin -> <subdomain>.myurl.com
理想情况下,我想将 <subdomain>
作为参数传递给我的重定向 URL。
我正在看类似这样的东西:
location ~ (sub).(somewhere).(com)/(some)(thing)/(something)(else) {
set $var1 = ; # = sub in above example
set $var2 = ; # = somewhere in above example
set $var3 = ; # = com in above example
set $var4 = ; # = some in above example
set $var5 = ; # = thing in above example
set $var6 = ; # = something in above example
set $var7 = ; # = else in above example
rewrite ^ / last; # would be sub/somewhere
}
基于这里 post:Manipulate or split string(我认为这个例子中变量集的语法是错误的,但你明白了要点)。
URL 的域名部分未通过 location
指令测试。您将需要在 server_name
指令中使用命名捕获。有关详细信息,请参阅 this document。
例如:
server {
server_name ~^(?<name>\w+)\.example\.com$;
location /admin {
return 301 $scheme://$name.myurl.com/;
}
}
我想根据用户输入的子域进行重定向。
例如:
<subdomain>.example.com/admin -> <subdomain>.myurl.com
理想情况下,我想将 <subdomain>
作为参数传递给我的重定向 URL。
我正在看类似这样的东西:
location ~ (sub).(somewhere).(com)/(some)(thing)/(something)(else) {
set $var1 = ; # = sub in above example
set $var2 = ; # = somewhere in above example
set $var3 = ; # = com in above example
set $var4 = ; # = some in above example
set $var5 = ; # = thing in above example
set $var6 = ; # = something in above example
set $var7 = ; # = else in above example
rewrite ^ / last; # would be sub/somewhere
}
基于这里 post:Manipulate or split string(我认为这个例子中变量集的语法是错误的,但你明白了要点)。
URL 的域名部分未通过 location
指令测试。您将需要在 server_name
指令中使用命名捕获。有关详细信息,请参阅 this document。
例如:
server {
server_name ~^(?<name>\w+)\.example\.com$;
location /admin {
return 301 $scheme://$name.myurl.com/;
}
}