How to Manage Redirects in Hugo Using a Single File
When building a Hugo site, you might need to manage redirects, especially if you’re restructuring content or moving pages. While it’s common to define redirects in the frontmatter of each page, there’s a more efficient way to handle them using a single file. This article will show you how to set up redirects in Hugo using a _redirects
file or custom server configurations.
Method 1: Using a _redirects
File (e.g., for Netlify)
If you’re deploying your Hugo site to Netlify, you can easily manage all your redirects in a single _redirects
file.
-
Create a
_redirects
File:- In the root directory of your Hugo site, or in the
static
folder, create a file named_redirects
.
- In the root directory of your Hugo site, or in the
-
Define Your Redirects:
-
Inside the
_redirects
file, list your redirects using the following format:1 2
/old-url /new-url 301 /another-old-url /another-new-url 302
-
Each line should contain the old path, the new path, and the status code (301 for permanent redirects, 302 for temporary).
-
Example _redirects
File:
|
|
Method 2: Using Custom Server Configuration
If you’re hosting your Hugo site on a platform other than Netlify, such as an Apache or Nginx server, you can manage redirects through server configuration files.
For Apache:
- Create a .htaccess file in the root directory of your Hugo site.
- Define your redirects using the Redirect directive:
|
|
For Nginx:
-
Open your Nginx configuration file (usually found in /etc/nginx/sites-available/).
-
Add your redirects within the server block:
|
|
Conclusion
By managing your redirects in a single file, you simplify the process of updating and maintaining your Hugo site. Whether you use a _redirects
file for Netlify or custom server configurations for other hosting environments, this approach centralizes your redirects and keeps your project organized.
-MB