将通配符子域重写为具体的顶级域 [英] Rewrite wildcard subdomain to the concrete top-level domain

查看:67
本文介绍了将通配符子域重写为具体的顶级域的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何配置 nginx 以将 .mydomain.com 重写为 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 应该是 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆