2015-11-03 119 views
0

此设置是为多个域共享单个CMS平台。它将允许任何域指向我的服务器IP。Nginx捕获所有域,然后添加www如果不存在

我可以使用nginx server_name _;抓住所有。

但如果www不存在,我想301重定向到www(追加www。infront)。如果www存在,那很好。

我该如何做到这一点?

回答

0

我已经使用nginx的以下服务器配置解决了这个。

server { 
    listen 80 default_server; 
    server_name ~^(?!www\.)(?<domain>.+)$; 
    return 301 $scheme://www.$domain$request_uri; 
} 

server { 
    listen 80; 
    server_name ~^(?<domain>.+)$; 
    root /home/wwwroot/web; 
    .. 
    .. 
} 

这将允许任何域名和301重定向到www。

0

可以赶上加www和重定向到www这个

server { 
    listen  80; 
    server_name example.com; 
    return  301 http://www.example.com$request_uri; 
} 


server { 
    listen 80; 
    server_name www.example.com; 
    root /path/to/site; 
    # Extra conf here. 
} 
+0

这是域名“example.com”。我需要的是如何捕获所有域,而不是在server_name指令中定义域。因为会有很多域名。 – Syed