将通配符子域重写为具体的顶级域 [英] Rewrite wildcard subdomain to the concrete top-level domain
问题描述
如何配置 nginx 以将
重写为 mydomain.com/some/url/path/
?
How can I configure nginx to rewrite <somesubdomain>.mydomain.com
to mydomain.com/some/url/path/<somesubdomain>/
?
somesubdomain
是通配符子域.
主要要求不是 REDIRECT,
应该是 mydomain.com/some/url/path/
的掩码代码>.
The main requirement is NOT REDIRECT, <somesubdomain>.mydomain.com
should be a mask for mydomain.com/some/url/path/<somesubdomain>/
.
此外,访问与 /
不同的其他网址(如 somesubdomain.mydomain.com/test/
)不应显示任何内容.
Also, accessing other urls different from /
(like somesubdomain.mydomain.com/test/
) should not show anything.
请注意,我为 mydomain.com
配置了 /
的代理,所以 /some/url/path/
应该由被代理的服务器传递和解析:
Please note that I have a proxy for /
configured for mydomain.com
, so /some/url/path/<somesubdomain>/
should be passed and resolved by server which is proxied:
location / {
proxy_pass http://app_servers;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
proxy_connect_timeout 10;
proxy_read_timeout 10;
}
推荐答案
它适用于这个配置(由当前 server{}
部分添加):
It works with this configuration (added by current server{}
section):
if ($host ~* (?<subdomain>[a-z0-9]+)\.mydomain\.com) {
rewrite ^/$ /some/path/$store_subdomain break;
}
这篇关于将通配符子域重写为具体的顶级域的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!