Heroku: Must I add a root domain? - heroku

Heroku Dev Center: Custom Domain Names for Apps: Add a custom root domain says:
Root domains must be added in addition to any subdomains.
However, I was able to add a custom subodmain (eg, api.foo.com) for my Heroku app without adding a root domain (eg, bar.com), and everything seems to be working fine.
Must I really also add a root domain? If so, why?

You don't have to add a root domain. The docs are just saying that IF you want a root domain added, you have to add it explicitly. (Adding api.foo.com doesn't implicitly add foo.com.)

Related

Setting up a GoDaddy domain name with Heroku

I'm new to using Heroku so I'm a bit confused because I initially had my website hosted on GoDaddy, but when I added node to my web app I switched to Heroku.
So what is happening is when I visit my website using www. it goes to the correct, updated site, however, when I try the naked route it takes it to the older version of the website. I figured since it's still showing the older site with the naked route that there was a problem on GoDaddy, therefore, I updated one page on GoDaddy and sure enough, the page is updated via the naked route now.
That leads to my first question. If my website is now on Heroku, does it still need to be hosted on GoDaddy as well? Additionally, if the first question is yes, then how do I set up the naked route to point to the same site as the www. route?
I've already have the host as www with the 'points to' pointing to the Heroku domain name but still getting the problem above. This is why I believe the problem lies with the hosting on GoDaddy.
You don't need to host a copy of your site at Goddady.
In Godaddy, you must have a CNAME www pointing to heroku:
your_application_name.herokuapp.com
or
www.your_application_name.com.herokudns.com.
To use heroku for your naked domain, you can define a redirection for the naked domain to your www:
Go to My domains (https://dcc.godaddy.com/manage/)
Click on Manage connection
Set forwarding option (choose www.your_application_name.com, forward type permanent)
This is what helped me as of 2019. First, get to the list of your domain(s) on GoDaddy's interface. You'll see something like this:
GoDaddy's all domains page
Choose your domain. Once you're on your domain's settings, scroll to the bottom and click on 'Manage DNS'. You should see some records created, if there are any.
ACTUAL CONFIGURATION
FIRST STEP:
Create a CNAME record(there should be an 'add' button somewhere). The record should have the following parameters - Type - CNAME, Host - www, Points to - enter the link heroku created for your app.
creating a CNAME record on GoDaddy's
Sometimes when there are other old CNAME records, it'll throw an error. Erase old CNAME records and try again.
SECOND step:
Go to your terminal and enter the command 'host www.yourdomain.com'. If the CNAME record was successful, you should see the heroku domain you enter earlier. IMPORTANT - You should also see a bunch IP addresses which we will need.
THIRD step:
Create 'A' records for all the IP addresses provided on the 'host www.yourdomain.com' terminal command. They should have the following parameters: Type - A, Host - #, Points to - IP address, choose TTL custom and type 600 seconds.
This should do it

How can i use multiple url eg. www.example.com,www.example1.com,www.example2.com, to point same project directory?

I want to use different view along with data for different URL . For example use view1, view1, view2 for www.example.com, www.example1.com and www.site2.example.com respectively.I have managed this making server alias in wamp. How can i do this in real hosting. e.g my registered domain is www.example.com
When you create URLs like "Site1.example.com" or "site2.example.com", you are effectively creating sub-domains on the server. Each sub-domain require separate deployment/installation (unless, you have enabled wildcard setting in sub-domain where all the domains are pointing to single sub-domain/address).

Customize URL with Heroku and OVH

I push my app I create with Ruby on rails on heroku and I have by default myapp.herokuapp.com
I buy my domain name on OVH I do heroku domains:add www.myapp.co to redirect to myapp.herokuapp.com.
I want to have only www.myapp.co this target and keep this went I am on the app. Could you guide to configure it on OVH.
I read this https://devcenter.heroku.com/articles/custom-domains and do what they say i don't understand check my url synestasia.co
Thank your for your help. really don't understand.
Steps needed to point (redirect) your OVH root domain (eg. yourdomain.com) to your heroku application.
Go to domain section in OVH and select your domain. Then click DNS ZONE
Remove entries (you can omit this step but OVH will tell you the same when you try to add an entry): Domain: www.yourdomain.com with types of: CNAME yourdomain.com, TXT 3|welcome, TXT l|pl (but this may depend on the
language as I'm using PL language).
Add CNAME record with www subdomain and target to your heroku CNAME domain you have from heroku website eg. my-application-fcmnqo274218034.herokudns.com. Confirm clicking next and confirm next step too.
Go to the Redirection tab and click Add a redirection. Leave both fields blank (one with domain address where you need to fill subdomain and Also redirect www.yourdomain.com checkbox unchecked. Click Next.
In the next page you should see What type of target do you want to redirect yourdomain.com to? question. Select to a web address and click Next
Next page says What type of redirection do you want to use to redirect yourdomain.com ?. Select with a visible redirection. and click Next.
In the next window select Permanent (301) redirection and then you will be asked to provide your full address as in the placeholder eg. https://www.yourdomain.com, then click next and validate the redirect rule.
Domain propagation might take a while (up to ~24h but mine was ready in few minutes). To not cache domain pointing to the DNS in your browser (as this might be fooling your with your website not found but it might work for others) you might want to use some tool to check if domain points to new servers (eg. https://dnschecker.org - that's not spam, I have nothing common with them)
Thanks to this user for posting that solution: http://community.ovh.com/t/redirection-vers-app-heroku/6392/16
To serve your domain name from Heroku, you need to tell the DNS service you use where your server is hosted.
Typically, this is done by declaring an A record DNS entry: A records expect a static IP address and so you just fill in your server's IP.
The challenge with Heroku is that it uses dynamic IP addresses, so A records are not an option.
So the other option is to declare a CNAME record: a CNAME points a name to another CNAME or an A record.
Problem is: CNAMEs are NOT supposed to be used for root domains (AKA base domain or apex domain.) They will only work with subdomains.
So you could easily declare www.example.com to point to your Heroku app (on ANY DNS service, including OVH), but not example.com.
To help with this problem, some DNS services came up with their own solutions that basically let you point a root domain to another domain.
The Add a custom root domain section of the Heroku docs mentions a bunch of these providers:
ALIAS at DNSimple
ANAME at DNS Made Easy
ANAME at easyDNS
ALIAS at PointDNS
CNAME at CloudFlare -- a bit of a misnomer
OVH offers no such option (maybe unsurprisingly given most of their business comes from hosting servers.)
Bottom-line: if your domain name is provided by OVH, either use a subdomain (e.g.: www.mysite.com) or change your NS records to use a different DNS service, one that supports CNAME-like functionality at the apex.
I'm no sysadmin. I spent a lot of time on this issue too and hope this helps.
Heroku panel -> Your APP -> Settings -> Domains and certificates -> Add Domain.
Copy DNS Target
Log in OVH
WEB -> DOMAINS -> Your domain
DNS ZONE
Field: www.yourdomain.com | Type : CNAME | Target: yourdomain.com
Click " ... " -> Change Entry -> Delete Target -> Paste Heroku DNS Target + " . (dot)"
Sometimes you have to wait 24 hours.

point subdomain from website-1 to subfolder on website-2 (both hosted on the same server)

I have a client with three websites, each with separate c-panels for their hosting and dns management.
I need to point a subdomain from website-1 and website-2 to website-3, and then have their root be a subfolder on website-3.
I was able to set up a simple subdomain for website-3, and set it's root to the subfolder that I needed, but am having trouble pointing the other two sites.
It seems (from googling around) that the issue is caused by the site's all sharing an IP address, since they're all on the same server.
On website-3 where the subfolder is, I've tried setting up an "add-on domain" of test.website-1.com but get an error stating:
website-1.com is already configured. Sorry, that domain is already setup (remove it from httpd.conf)
I get a similar error trying to use the park a domain settings in the cpanel. I don't have access to the server in a way that lets me httpd.conf (unless there's a way through the cpanel).
Is there any other way to set this up that I'm missing?
If you are using IIS, you can create a website (Add Web site under Sites folder in IIS) in IIS and point to any folder. For example, if you are trying to point a subdomain mysubdomain.website-1.com to a particular folder, create a website in IIS that points to that subfolder, then in bindings, bind it to mysubdomain.website-1.com. In your domain registry, simply point the sub domain to the same IP of Website-1. I believe that should work.
Unfortunately, my knowledge is limited to IIS. If you are not using IIS, you may find other resources to configure a subdomain.
If all your primary domains are using same IP , you will not be able to point the subdomains as you have mentioned since all the subdomains also using the same IPs.
Instead of pointing the subdomain 1 subdomain 2 to subdomain 3 ... just set up redirects directly to subdomain 3 for each subdomain from their primary domain's cpanel.
You can easily set the redirects from Redirects option in cpanel

Locking down multiple sites in Sitecore

I have two sites running under one Sitecore 6 installation. The home nodes of the sites are as such:
/sitecore/content/Home
/sitecore/content/Careers
Assuming the primary site is at domain.com, the careers site can be accessed at careers.domain.com.
My problem is that, by prefixing the uri with /sitecore/content/, any sitecore item can be accessed by either (sub)domain. For example, I can get to:
http://domain.com/sitecore/content/careers.aspx (should be under careers.domain.com)
http://careers.domain.com/sitecore/content/home/destinations.aspx (should be under domain.com).
I know I can redirect these urls (using IIS7 Redirects or ISAPIRewrite) but is there any way to 'lock' Sitecore down to only serve items under the configured home node for that domain?
I can't say for sure without testing it but you could try putting each site it its own security domain and denying access to each other. In the <sites/> node there is a domain="extranet" attribute, create a new security domain and set the Careers site to use it.
You can create new security domains using the domain manager in the Sitecore desktop.

Resources