Skip to content

Latest commit

 

History

History
56 lines (43 loc) · 2.26 KB

File metadata and controls

56 lines (43 loc) · 2.26 KB
aliases category classification date date_modified draft id image links local_archive_links pinned print series tags title type
netlify-domain-redirects
netlify
public
2021-04-23 03:50:44 -0700
2021-04-23 03:50:44 -0700
false
20210423105044
false
false
dns
domain
netlify
redirection
Netlify Domain Redirects
tech-note

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/