如何让所有子域名直接在 nginx 中重定向到该域名?

如何让所有子域名直接在 nginx 中重定向到该域名?

我想要重定向 URL 如下:http://subdomain.domain.com/r/wtfhttp://domain.com/r/wtf

我该怎么做呢?

答案1

最简单的答案:

if ($host !~ ^domain\.tld$){
    rewrite ^/(.*) http://domain.tdl/$1 redirect;
}

因为您已将所有子域名请求到一个域名,所以该规则将适用于任何子域名。

编辑:这意味着在服务器定义内部,与 ^domain.tld$ 不同。

答案2

如果是邪恶的!。如果每个请求都是双手捂脸……

server {
    listen 80;
    # listen 443;
    server_name *.domain.tld;
    return 301 $scheme://domain.tld$request_uri; 
}

server {
    listen 80;
    # listen 443;
    server_name domain.tld;

    # usual lines
}

答案3

使用重写规则,我的 nginx 配置中有类似这样的操作:

if ($host !~ ^(www\.kaarsemaker\.net|ip\.seveas\.net)$) {
        rewrite ^(.*)$ http://www.kaarsemaker.net$1 permanent;
}

相关内容