2014-03-04 85 views
2

我想将未定义的子域重定向到我的主域。 所以我有一个网站domain.com,我有2个子域名:sub1.domain.com和sub2.domain.com。 而我想要的是,当有人试图去到sub4.domain.com,它在nginx中不匹配,并将其重定向到domian.com。这可以实现吗?将未定义的子域重定向到nginx中的主域?

回答

-1

这将重定向任何子域请求。 对于所有现有子域,您必须添加server条目。

# this will catch all subdomains and redirect to main domain. 
server { 
    server_name *.domain.com; 
    return 301 http://domain.com$request_uri; 
} 

# this block will be used for sub1.domain.com; 
server { 
    server_name sub1.domain.com; 
    ... 
} 

# this is for sub2.domain.com; 
server { 
    server_name sub2.domain.com; 
    ... 
} 

# and so on... 

nginx不知道哪些子域存在,哪些不存在。所以你必须明确地命名所有这些。

+2

这不完全是我想要的。我想重定向尚不存在的子域。所以sub1.domain.com存在sub2.domain.com存在,但sub3.domain.com尚不存在或sub4.domain.com,我想要的是,这些2,sub3和sub4,被重定向到domain.com。那可能吗? – Xenonbart

+0

“不存在的子域”对你来说意味着什么?如果没有“sub4.domain.com”的DNS记录,则无法添加重定向,因此我假设您有DNS为该域提供一些IP。 –

+1

我有一个DNS记录sub4.domain.com,我希望它重定向到domain.com。对我而言,不存在的意思是它在nginx中的任何地方都没有定义。 – Xenonbart