更新:2013年4月20日,仍然没有找到解决方案,请帮忙
查看我的 nginx 配置,唯一可能是罪魁祸首的是:
server {
listen 80;
listen [::]:80 ipv6only=on default_server;
rewrite ^(.*) https://$host$1 permanent;
}
实际上,我需要将“www”重定向到主域。
这可以在 nginx 中完成吗?
我对此事有点困惑,GoDaddy 支持每次都告诉我不同的事情。
我已将我的 www 域名转发到主域名,但它不起作用。
www.domain --> domain.com Fails
但是任何其他子域名(例如测试)都可以毫无问题地转发到主域名。
test.domain --> domain.com Ok
Godaddy 声称:
或者您需要设置一个映射到 @ 的 www CNAME。在您的主机上,您可以设置编码重定向https://domain.com在索引文件或.htacess 文件中。
我不明白如何实现这一点。
答案1
您首先应该配置您的 DNS 区域,如下所示:
@ IN A <IP ADDRESS>
www IN A <IP ADDRESS>
使用此配置,任何类似于www.example.com
和的内容example.com
都将被解析为IP ADDRESS
您的 Web 服务器的 IP 地址。
然后,在您的 Nginx 配置中输入以下内容:
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;
...
}
答案2
顺便说一句,此任务不需要正则表达式。例如,尝试此配置。
server {
listen *:80 default_server;
listen [::]:80 ipv6only=on default_server;
return 301 https://domain.com$request_uri;
}