I recently changed a personal site from being hosted in gh-pages to Netlify (gh-pages is great, but Netlify functions are hard to beat).
The old site used a regular gh-pages url:
It gets the job done, but it's not easy to remember.
The latest iteration got a slick new url:
I wanted to make sure links to the old site redirected to the new site, but without a server it felt a little tricky.
Netlify has redirects but that's only for pages on that domain. They won't help us here.
The workaround I came up with is relatively simple, even if it's a bit hacky.
Like most Netlify projects, pushes to the
main branch trigger a build.
Easy peasy, which means I no longer had to worry about the gh-pages branch.
Create a new project
Next, I had to create a new project locally that looked like this:
. ├── README.md ├── dist │ └── index.html ├── package-lock.json └── package.json
The only dependency is
*in reality, no dependencies are necessary. But I like to have a
/dist directory, so I use
push-dir for that
Set up the redirect
In order to redirect users, this is all that's needed:
<head> <title>Hebrew Transliteration</title> <meta http-equiv="refresh" content="3; url = https://hebrewtransliteration.app" /> </head>
The key is the
With this attribute set to
"refresh", by setting the
3 after 3 seconds the page will redirect to the
I also threw in some content letting the user know they were being redirected.
Git & GitHub
Once I had it the way I liked it, I had to initialize a git repository and commit.
git init git add . git commit -m "Init commit"
Then I had to the Github repo as the remote origin:
git remote add origin https://github.com/charlesLoder/hebrewTransliteration.git
Most importantly, don't push anything yet!
Remember, this is only going to be on the
push-dir package, I ran:
npx push-dir --dir=build --branch=gh-pages
It's pretty straightforward, the
dist directory was pushed to the
gh-pages branch of
Surprisingly, there is very little about this that I could find. This blog was the closest thing, but it was little help.
Perhaps this was painfully obvious to others, but not to me...
If you know of a better/different method, let me know in the comments!
Top comments (0)