Add GoDaddy naked domain to Heroku app

2020-06-12 23:41发布

问题:

Heroku custom domains

I've setup two custom domains for my Heroku app.

example.com        example.com.herokudns.com
*.example.com      wildcard.example.com.herokudns.com

Domain configuration

I configured my domain as follows:

  1. I added a CNAME Record for * pointing to wildcard.example.com.herokudns.com.
    Works fine.

  2. I forwarded my URL using GoDaddy's Domain Forwarding tool, because I can only specify IP addresses as A records.


Problem

The domain forwarding points to example.com.herokudns.com. Unfortunately GoDaddy automatically prepends http://, so it actually does not open my app and instead shows a Heroku message:

There's nothing here, yet.


Goal

Setting up my GoDaddy root domain to point to my Heroku app.


Note: GoDaddy automatically added an A record for @ pointing to >>++FWD1++<<

回答1:

Cloudflare does the job!

Finally, I achieved my goal of using my naked domain as host by choosing CloudFlare to handle my DNS configuration.

Resources:

  • CloudFlare allows CNAME Records to be the naked domain
  • How CNAME Flattening works

Note: CloudFlare has a pretty good documentation and setup process, you just need to:

  1. add your domain to CloudFlare
  2. follow the CloudFlare setup guide
    • updating your nameservers (in my case GoDaddy) to point to CloudFlare


回答2:

What did you set your DNS to forward to? I had this same problem, but solved this creating a Heroku DNS entry for www.myapp.com. Heroku creates a DNS target of www.myapp.com.herokudns.com.

Here is my setup:

  • DNS forwarding to www.myapp.com
  • DNS CName of www to www.myapp.com.herokudns.com
  • Heroku DNS added www.myapp.com


回答3:

In Setup Heroku and GoDaddy? allegutta solves the issue by masking the heroku-app-name domain with the .com domain. Instead of slooob.com.herokudns.com, use your original heroku app url ([heroku-app].herokuapp.com) and it should work. Just worked for me.