If you want to leverage Netlify redirects on your Jekyll site, there are a few extra steps to take before it can be fully functional. If you’re using a Netlify site with your own build process, using a
_redirects file should be sufficient. In fact, Netlify’s guide on how to do redirects is a better resource if you don’t have a Jekyll site.
The reason that Jekyll requires special attention is because everything on your Jekyll site get’s compiled into the
_site directory. The underscore in the
_redirects file name can create a slight problem.
Let’s walk through everything that you need to do in order to set up Netlify and Jekyll redirects!
Leveraging Jekyll 4’s layout: none front matter option
Jekyll will ignore the underscore in the
_redirects file name by default. You can easily get around this by creating a file (I called it
netlify_redirects) on the root of your site. You can use the following code to get started:
--- layout: none permalink: /_redirects --- /path/to/old/ /path/to/new/
When Jekyll compiles, you’ll see the
_redirects file in your
Options for setting up Netlify redirects if you’re on Jekyll 3
If you’re site uses Jekyll below version 3.5, you’ll have to use a workaround. Jekyll 3.5 introduced a lot of new features that have been helpful in creating better site layouts and plugin workflow. This is old news, but it might be helpful to know if you’re on a legacy version of Jekyll!
The above recommendation to for adding redirects won’t work because
layout: none will throw an error. You can alternatively create a ‘none’ layout in your
_layouts directory and have that layout help you generate a blank file.
└───/_layouts │ │ none.html
Create a static file and have Netlify create the redirects file for you
In maybe the edge of the edge cases, you might be in a situation where you can’t generate a
_redirects file. In this case, you can create a regular text file on your root. Let’s say
netlify_redirects.txt. From here, login to your Netlify account. Find
Site Settings > Build & Deploy.
From here, look for
Build Command. Use the snipplet below to help generate a
_redirects file when Netlify compiles your site.
jekyll build --destination _site && cp _site/netlify_redirects.txt _site/_redirects