首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DNS记录将www重定向到非www。

问DNS记录将www重定向到非www。
EN

Stack Overflow用户
提问于 2017-03-28 23:39:47
回答 2查看 46.6K关注 0票数 29

我正在使用命名堆域和Vultr托管。

我正在尝试将DNS重定向到非www。

www.example.com到example.com

我联系了Vultr,并询问如何与他们的DNS管理器这样做,他们说,他们不会帮助,因为它是自我管理的。所以我联系了Namec堆,他们说他们不会帮忙,因为他们不能访问Vultr的DNS管理器,不告诉我我展示的记录是否正确,我需要联系Vultr。所以我处于一个无穷无尽的支持循环中。

Vultr DNS管理器

我跟踪了这个答案关于如何建立一个CNAME以重定向到非www。

代码语言:javascript
复制
Type   | Name | Data         | Seconds
--------------------------------------
A      |      | ipv4 address | 300
AAAA   |      | ipv6 address | 300
CNAME  | .    | example.com  | 300
CNAME  | www  | example.com  | 300

在等待了一整晚之后,www仍然可以被访问,并且不会重定向。

它不允许我创建另一个A记录,只有CNAME。上面写着:

代码语言:javascript
复制
Unable to add record: A CNAME record is not allowed to coexist with any other data. 

NGINX

我跟踪本指南,尝试用sites重定向它。Http和Https可以工作,但是www不会重定向到非www。

代码语言:javascript
复制
server {
    # Redirect http to https
    listen 80;
    return 301 https://$host$request_uri;
}

server {
    # Redirect www to non-www
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

server {
    listen 443 ssl default_server;

    ssl on;
    ssl_certificate /etc/nginx/ssl/cert_chain.crt;
    ssl_certificate_key /etc/nginx/ssl/example_com.key;
    ssl_protocols  TLSv1.1 TLSv1.2;

    server_name example.com;
    ...
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-29 09:33:31

DNS无法将您的www站点重定向到非www。DNS的唯一目的是使用A、AAAA或CNAME记录将www和non都指向服务器的IP地址(这几乎没有什么区别)。nginx配置负责执行从www到non的重定向。

您的第二个服务器块打算从www重定向到非www,但目前只处理http连接(端口80)。

您可以移动默认服务器,并使用它将所有内容重定向到预期的域名。例如:

代码语言:javascript
复制
ssl_certificate /etc/nginx/ssl/cert_chain.crt;
ssl_certificate_key /etc/nginx/ssl/example_com.key;

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

server {
    listen 443 ssl;
    server_name example.com;
    ...
}

假设您对www和非www域名都有一个公共证书,您可以将ssl_指令移到外部块中,并允许将它们继承到两个服务器块中(如上面所示)。

有关更多信息,请参见本文件。

票数 27
EN

Stack Overflow用户

发布于 2018-11-24 23:41:50

通过在nginx配置文件中添加一个新的服务器块,您可以将www定向到非www。

步骤1:将以下服务器块添加到nginx配置文件中。

代码语言:javascript
复制
server {
    server_name www.example.com;
    return 301 $scheme://example.com$request_uri;
}

步骤2:重新启动nginx。

代码语言:javascript
复制
sudo systemctl restart nginx
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43081780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档