When you change the path of a file in your docs folder, it also changes the URL path to that page. This may happen when restructuring your docs or changing the sidebar title.
Redirects
Redirects cannot include URL anchors like path#anchor or query parameters like path?query=value.
Set up redirects by adding the redirects field to your docs.json file.
"redirects": [
{
"source": "/source/path",
"destination": "/destination/path"
}
]
This redirects /source/path to /destination/path.
By default, redirects are permanent (308). To use a temporary redirect (307), set permanent to false.
"redirects": [
{
"source": "/source/path",
"destination": "/destination/path",
"permanent": false
}
]
Both 307 and 308 preserve the HTTP method of the original request (unlike 301 and 302), making them suitable for redirecting POST requests.
Wildcard redirects
To match a wildcard path, use * after a parameter. In this example, /beta/:slug* matches /beta/introduction and redirects it to /v2/introduction.
"redirects": [
{
"source": "/beta/:slug*",
"destination": "/v2/:slug*"
}
]
Partial wildcard redirects
Use partial wildcards to match URL segments that start with a specific prefix.
"redirects": [
{
"source": "/articles/concepts-*",
"destination": "/collections/overview"
}
]
This matches any URLs with the /articles/concepts- path, such as /articles/concepts-getting-started and /articles/concepts-overview, and redirects them all to /collections/overview.
You can also substitute the captured wildcard value in the destination.
"redirects": [
{
"source": "/old/article-*",
"destination": "/new/article-*"
}
]
This redirects /old/article-123 to /new/article-123, preserving the captured value after the prefix.
Avoid infinite redirects
To avoid infinite loops, do not create circular redirects where paths redirect back to each other.
"redirects": [
{
"source": "/docs/:slug*",
"destination": "/help/:slug*"
},
{
"source": "/help/:slug*",
"destination": "/docs/:slug*"
}
]
Check for broken links
Find broken links with the CLI.