我正在使用Namecheap Domains和Vultr Hosting。
我正在尝试将DNS wwwredirect到非www。
www.example.com到example.com
我联系了Vultr,并询问他们如何通过他们的DNSpipe理器来做到这一点,他们表示,他们不会帮助,因为它是自我pipe理的。 所以我联系了Namecheap,他们说他们不会因为他们没有访问Vultr的DNSpipe理员而无法帮助,不会告诉我我显示的logging是否正确,我需要联系Vultr。 所以我处于一个无尽的支持循环中。
Vultr DNS Manager
我跟着这个答案如何设置一个CNAMEredirect到非www。
Type | Name | Data | Seconds -------------------------------------- A | | ipv4 address | 300 AAAA | | ipv6 address | 300 CNAME | . | example.com | 300 CNAME | www | example.com | 300
在等待通宵达旦之后,www仍然可以访问,不会redirect。
它不允许我创build另一个A
logging,只有CNAME
。 它说:
Unable to add record: A CNAME record is not allowed to coexist with any other data.
NGINX
我遵循这个指南,并尝试使用站点可用的configurationredirect。 Http和Https的工作,但WWW不redirect到非WWW。
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; ...
DNS不能将您的www网站重定向到非www网站。 DNS的唯一目的是使用A
, AAAA
或CNAME
记录将www和non-www指向您服务器的IP地址(这几乎没有什么区别)。 nginx
配置负责执行从www到非www的重定向。
您的第二个服务器块旨在从www重定向到非www,但目前仅处理http
连接(在端口80上)。
您可以移动默认服务器并使用它将所有内容重定向到目标域名。 例如:
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_
指令移动到外部块中,并允许将它们继承到两个服务器块中(如上所示)。
请参阅此文档了解更多
你可以使用redirect.center并从等式中移除NGINX。
配置和简单更容易,将您的dns记录设置为:
CNAME | www | example.com.opts-uri.redirect.center
只是它。