How to set up redirects on Netlify

Netlify provides two methods to configure redirect and rewrite rules for your site: using a _redirects file or using the Netlify configuration file (netlify.toml).

Algogenz logo

10m · 3min read

Redirection is a critical part of web development, which refers to the automatic forwarding of a user or client from one URL to another. It involves instructing the web server to respond to a request for a certain resource with a different resource or location. Redirection serves various purposes, including content migration, SEO optimization, and enhancing user experience.


Setting Up Redirects on Netlify

Netlify provides two methods to configure redirect and rewrite rules for your site: using a _redirects file or using the Netlify configuration file (netlify.toml).


Using the _redirects File

To set up redirects in Netlify, you can use the _redirects file. This file, which is a simple text file placed in the root of your published site, is a straightforward way to define redirect rules. Each line in the file represents a redirect rule.


1. Create a file named _redirects in the public directory of your project.

2. Add your redirect rules to the _redirects file. For example:

# Redirect from old-path to new-path
/old-path /new-path 301
# Redirect from /about-us to /about
/about-us /about 301
# Redirect from /blog/:slug to /posts/:slug
/blog/:slug /posts/:slug 301
# Custom 404 page redirect
/* /404.html 404

In this example, dynamic redirection based on the :slug placeholder is demonstrated, and a wildcard redirect captures all non-matching routes.


3. Customize the rules based on your specific requirements.

4. Include the  _redirects file in your version control system (e.g., Git).

5. Deploy your app to Netlify, and Netlify will automatically recognize and apply the redirect rules specified in the  _redirects file during the deployment process


Using the Netlify Configuration File netlify.toml

Alternatively, you can use the netlify.toml file for a more structured configuration. Redirect rules are specified using TOML's array of tables. Here's an example:

[[redirects]]
from = "/old-path"
to = "/new-path"
status = 301
[[redirects]]
from = "/about-us"
to = "/about"
status = 301
[[redirects]]
from = "/blog/:slug"
to = "/posts/:slug"
status = 301
[[redirects]]
from = "/*"
to = "/404.html"
status = 404

In this example, the from field specifies the path to redirect, the to field specifies the destination, and the status field specifies the HTTP status code.

Netlify also supports advanced redirect options such as country or language-based redirects, role-based redirects, and cookie-presence redirects. Here's an example of country or language-based redirects using netlify.toml:

[[redirects]]
from = "/anz"
to = "/anz"
status = 302
conditions = {Country = ["au", "nz"]}
[[redirects]]
from = "/israel"
to = "/israel"
status = 302
conditions = {Country = ["il"]}
[[redirects]]
from = "/israel/*"
to = "/israel/he/:splat"
status = 302
conditions = {Language = ["he"]}

These options allow you to tailor user experiences based on their location, language preferences, or role.


In conclusion, implementing redirects in an application deployed on Netlify enables you to shape user experiences, manage traffic flow, and enhance SEO. Whether you choose the simplicity of the _redirects file or the structured approach using the netlify.toml file, understanding rule processing order is crucial for achieving the desired redirection behavior. Test your redirects thoroughly to ensure a seamless user journey, considering various scenarios. For more details and advanced options, refer to the Netlify documentation on redirects.

Recommended

Next pages: