Netlify Domain Redirects

I have a Hugo site on Netlify.

I needed to redirect my old domain jakeprice.tech and www.jakeprice.tech to my new one jacobprice.tech using Netlify.

The domains are registered elsewhere, but their nameservers point to Netlify, and therefore all DNS records are on Netlify.

For my Hugo site in Netlify, I first added both jakeprice.tech and www.jakeprice.tech as domain aliases:

Site settings > Domain management > Domains > Add domain alias

Then I initially created a _redirects file and placed it in the root of my Hugo site repository. That didn’t work though, as you can see below.

curl -svo /dev/null https://jakeprice.tech  2>&1 | egrep '< (HTTP|location)'
< HTTP/2 200

I was seeing a 200 instead of a 301. So my site was accessible at each domain, as though that domain was the main domain!

It turns out if you’re using _redirects you need to put it in the public/ directory of your Hugo site. It wasn’t immediately obvious how I could do that in Netlify, as Netlify builds the public/ directory - i.e. it’s not committed to my Hugo site’s repository (I’m sure there’s a way to do it, I just haven’t bothered to look, because I found a nice and simple solution).

An answer on Stack Overflow helped me find that out: http status code 301 - How to make 301 redirect in Netlify work? - Stack Overflow

Quite simply I could just add the redirects to my netlify.toml file in the root of my Hugo site’s repository. Not that my redirect’s were complicated but I used this playground to convert them and then committed the change to netlify.toml.

Once Netlify picked up the commit and rebuilt the site the redirects started working as expected.

curl -svo /dev/null https://jakeprice.tech  2>&1 | egrep '< (HTTP|location)'
< HTTP/2 301
< location: https://jacobprice.tech/