使用 nginx 或 apache 2 捕获不存在的子域名?

使用 nginx 或 apache 2 捕获不存在的子域名?

是否有可能在“捕获全部”设置中检测到不存在的子域?

  • user1.domain.ltd 有效
  • user2.domain.ltd 有效
  • nonexistant.domain.ltd 不起作用,想将其重定向到 default.domain.ltd

有什么方法可以做到这一点?

**我需要一种服务器端方法来检测子域是否不存在以显示默认子域**

答案1

# existing domains
server {
        server_name
                    s1.example.com
                    s2.example.com
        ;
}

# non-existing domains
server {
        server_name ~^.*$;
        rewrite ^(.*)$ s1.example.com$1; 
}

答案2

server {
    server_name user1.example.com;
    [...]
}

[...]

server {
    server_name default.example.com;
    [...]
}

server {
    server_name *.example.com;
    return http://default.example.com$request_uri; 
}

http://nginx.org/en/docs/http/server_names.html

相关内容