A theme component to enable easy redirection in Hugo sites.
Hugo Redirect enables easy redirection: one of the major pieces missing from Hugo's impressive feature set.
Let's say you
yoursite.com/cv.pdf
and you'd much rather point people to yoursite.com/cv
yoursite.com/blog/2019/09/08/how_to_add_clis
and you'd like to share it to people quickly at yoursite.com/cli
Redirection comes in very handy in these cases.
Hugo Redirect currently supports static meta refresh based redirects, _redirect
generation for Netlify and and .htaccess
(for Apache / Nginx servers) generation.
This is not a standalone theme. It is a Hugo theme component (sort of like a plugin) providing easy URL redirect capabilities to Hugo sites. A working demo of this redirection is available on my site at https://prag.io/cv.
Contributions welcome! Send your pull request.
In the root of your site repository:
hugo-redirect
as a submodule to be able to get upstream changes later
$ git submodule add https://github.com/gcc42/hugo-redirect.git themes/hugo-redirect
hugo-redirect
as the left-most element of the theme
list variable in your site's or theme's configuration file config.yaml
or config.toml
. Example, with config.yaml
:
theme: ["hugo-redirect", "other-components", "my-theme"]
or, with config.toml
,
theme = ["hugo-redirect", "other-components", "my-theme"]
$ hugo new redirect/cv.md # Replace cv with a (arbitrary) redirect name
Open the newly created file redirect/cv.md
in your editor and update the
url
and redirect_to
fields in the front matter, like so:
type = "redirect"
url = "/cv"
redirect_to = "/cv.pdf"
redirect_enabled = true
.htaccess
>, follow the steps below to enable _redirects
file generation (recommended)If you're using Netlify, you'll want to generate the native _redirects
file:
_redirects.md
to your content folder:
$ cp themes/hugo-redirect/content/_redirects.md content/
draft
from true
to false
Check if your hosting supports the .htaccess
file configuration. If they do, enable it as:
_htaccess.md
to your content folder:
$ cp themes/hugo-redirect/content/_htaccess.md content/
draft
from true
to false
That's it. You're done. Now simply build and deploy your site and any requests to yoursite.com/cv
should be redirected to yoursite/cv.pdf
.
_redirects
/.htaccess
based on where you're hosting. (Even though meta
redirects work fine, this will potentially improve the speed and help with SEO)hugo-redirect
with manual redirection, or you could end up creating a nasty redirect loopurl
and redirect_to
parameters exactly as you want them. This means that if you want /cv --> /cv.pdf
, make sure you set url = /cv
and NOT url = /cv/
(however because of the way Hugo works currently, both /cv --> /cv.pdf
and /cv/ --> /cv.pdf
will be set up)Create an issue or email me at pranjal at prag.io
.
Copyright © 2012 onwards, Pranjal Agrawal pranjal@prag.io.