How do I redirect a whole URL section on Vercel?

The Citead team, updated

In short. Use /blog/:path* as the source and /news/:path* as the destination to preserve paths when redirecting a section on Vercel.

Definition: A wildcard redirect matches a URL section and substitutes the matched path into a destination. As of 17 October 2026, Vercel documents /blog/:path* with destination /news/:path* for moving a section while preserving its subdirectories and page paths.

Key facts

What goes in vercel.json?

Vercel's wildcard example moves paths under /blog/ to corresponding paths under /news/. The following configuration follows that example and explicitly sets the permanent option:

{
  "$schema": "https://openapi.vercel.sh/vercel.json",
  "redirects": [
    {
      "source": "/blog/:path*",
      "destination": "/news/:path*",
      "permanent": true
    }
  ]
}

The source field selects the incoming pathname. The destination field inserts the captured suffix after /news/. For example, applying this rule to /blog/a/b produces /news/a/b. This is an illustration of parameter substitution using the documented pattern.

The same reference defines permanent: true as a 308 redirect and permanent: false as a 307 redirect. It also accepts an external URL as the destination, so the destination can include another domain followed by the captured parameter.

How does the wildcard differ from a single parameter?

A path segment is the part of a URL path between slashes. The Next.js path matching documentation gives /old-blog/:slug as a pattern that matches /old-blog/first-post; that parameter does not match the nested suffix in /old-blog/a/b.

Adding * after the parameter allows zero or more segments. The same documentation explicitly lists /blog, /blog/a, and /blog/a/b/c as matches for /blog/:slug*. Repeating :slug* in /news/:slug* substitutes the captured path into the new section.

For a Next.js application, Vercel's configuration guide recommends defining redirects through next.config.js. Its framework example returns an array from async redirects(), with source, destination, and permanent properties.

How can the section redirect be checked?

Vercel's redirect guide recommends testing redirects on a preview deployment before production. It demonstrates inspecting response headers with curl -I and checking the redirect status and Location header, which identifies the destination URL.

For the configuration above, a useful test set includes the section root, a direct child, and a nested path. The expected destination for the illustrated nested path is /news/a/b, with status 308. Checking the destination response also helps identify a redirect loop. Vercel warns that a source matching every path can send all incoming requests to one destination; the /blog/ prefix limits this example to the intended section.

FAQ

Can I preserve nested folders?

Yes. Vercel's wildcard example repeats :path* in the destination to preserve the corresponding path beneath the new section.

Does the wildcard include the section root?

The Next.js reference explicitly includes /blog among the matches for /blog/:slug*. You can include that root URL in the preview checks alongside nested URLs.

Can I make the move temporary?

Yes. Set permanent to false for a 307 redirect, as defined in Vercel's configuration reference.

Sources

  1. Vercel, "Redirects", 18 September 2026
  2. Vercel, "Configuration Redirects", 11 August 2026
  3. Vercel, "Static Configuration with vercel.json", 14 August 2026
  4. Next.js, "redirects", 30 June 2026

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark