nginx:只将“www”子域redirect到主域?

更新:2013年4月20日,仍然没有解决scheme,请帮助

看看我的nginxconfiguration,唯一可能的罪魁祸首是这样的:

server { listen 80; listen [::]:80 ipv6only=on default_server; rewrite ^(.*) https://$host$1 permanent; } 

从字面上看,我需要“www”redirect到主域。

这可以在nginx中完成吗?

我对这个问题有点困惑,Godaddy的支持告诉我每次都会有所不同。

我已经将我的www域转发到主域,它不起作用。

 www.domain --> domain.com Fails 

但是,其他任何子域如testing,可以毫无困难地转发到主域。

 test.domain --> domain.com Ok 

Godaddy声称:

或者您需要设置映射到@的www CNAME。 在您的主机上,您可以在索引文件或.htacess文件中设置一个编码redirecthttps://domain.com 。

我不明白如何做到这一点。

你应该首先configuration你的DNS区域:

 @ IN A <IP ADDRESS> www IN A <IP ADDRESS> 

使用这个configuration, www.example.comexample.com等任何东西都将被parsing为IP ADDRESS ,这应该是您的Web服务器的IP地址。

然后,在你的Nginxconfiguration中,你把这个:

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

顺便说一下,在这个任务中你不需要正则expression式。 例如,试试这个configuration。

 server { listen *:80 default_server; listen [::]:80 ipv6only=on default_server; return 301 https://domain.com$request_uri; }