将 subdomain.domain.com 重定向至 www.subdomain.domain.com

将 subdomain.domain.com 重定向至 www.subdomain.domain.com

我们目前有一个通配符虚拟主机接受所有域请求。

我想重定向 subdomain.domain.comwww.subdomain.domain.com所以我的通配符将回答

有一个例外,我不想重定向www.domain.comwww.www.domain.com

如何实现?我已经将其组合在一起(在通配符块之外),但它没有处理异常,也不确定变量的事情

if ($http_host ~ (.*).domain.com) {
    set $test P;
}

if ($http_host != www.domain.com) {
    set $test  "${test}C";
}

if ($http_host != www.*.domain.com) {
    set $test  "${test}D";
}

if ($test = PCD) {
    rewrite ^(.*)$ www.%1.domain.com$1 permanent;
}

谢谢

答案1

我会用这个:

server {
    listen 80;
    server_name www.example.com example.com;

    # this is default server.
    ...
}

server {
    listen 80;
    server_name www.*;

    # here www.*.example.com
    ..
}

server {
    listen 80 default_server;
    return 301 http://www.$host$request_uri;
}

相关内容