如何在Route53中将www重定向到非www?


24

我的网站托管在domain.com

我在Route53中的DNS条目如下:

domain.com      A       xxx.xxx.xxx.xxx      300
domain.com      NS      stuff.awsdns-47.org  172800
domain.com      SOA     stuff.awsdns-47.org  900

我想将流量从重定向www.domain.comdomain.com,因为当前这仅返回404。关于SO的问题提示了一条PTR记录,我补充说:

www.domain.com  PTR     domain.com           300

但这没用。我该怎么办?


3
如果您实际上要发送HTTP重定向,则不能在DNS中进行。如果您不关心地址栏中的URL更改,请按照pauska的建议使用CNAME。如果您愿意的话,您将需要某种Web服务器来发送301。某些DNS提供商将其作为服务,但是我不认为Route53会这样做。
cjc 2012年

@cjc我不在乎地址栏中的URL。
fredley

Answers:


22

PTR用于设置反向IP查找,这不是您应该关心的事情。去掉它。

您需要的是www的CNAME:

www.domain.com  CNAME  domain.com 300

15
这不是重定向。如果您必须在某种第三方服务中定义回调URL,则上述解决方案将不起作用。例如oAuth(Facebook,Twitter)身份验证。
Ck-

14

您还可以将WWW的ALIAS设置为domain.com的A记录:

www.domain.com A ALIAS domain.com 300

因此您的最终DNS条目如下:

domain.com          A       xxx.xxx.xxx.xxx      300
domain.com          NS      stuff.awsdns-47.org  172800
domain.com          SOA     stuff.awsdns-47.org  900
www.domain.com      A       ALIAS domain.com (Hosted Zone ID)

我已经做到了,但是仍然无法正常工作。还有什么需要做的吗?
Utpal-Ur Best Pal '18

添加别名后,我需要删除浏览器缓存才能使其正常运行。
trees_are_great

这取决于您DNS的先前TTL。
Hardeep Singh,

3

在为example.com和www.example.com拥有CNAME之后,此nginx配置会将流量从http重定向到https,并将所有www.example.com重定向到example.com

server { 

    listen  80 ;

    server_name  example.com, www.example.com;

    rewrite ^/(.*) https://example.com/$1 permanent;
}

server {  #  redirect www to normal domain

    listen       443  ssl ;

    server_name www.example.com;

    include /etc/nginx/myprojname/include/ssl;

    return 301 https://example.com$request_uri;
}

server {

    listen  443 ssl ;

    include /etc/nginx/myprojname/include/ssl;

    server_name example.com;

    include /etc/nginx/snippets/nginx_common_location_443;

    location / {

        proxy_pass http://127.0.0.1:3000/;
    }

    include /etc/nginx/myprojname/include/custom_server_include;
}

我的实际服务器启动并在端口3000上侦听的位置...这也终止了我的TLS,但是只需删除ssl的内容...藏在那些包含的文件中的就是我的nginx设置以加固该框


-1

如上所述,使用标准DNS是不可能的。

这是我使用的解决方案:

  • 使用静态网站的设置S3重定向到您的非www域
  • 创建到S3的Cloudfront分配(使用S3域,而不是AWS自动完成中建议的那个)
  • 将路线53 A记录别名添加到CloudFront分配中

@Thomas查看编辑后的答案。
natanavra
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.