---
title: How do I perform Vercel redirects based on query strings?
description: When using redirects with the `vercel.json` or `next.config.js` configuration file, your URL may contain query parameters that you would like to use in your re-direction, this is possible with 2 different methods.
url: /kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings
canonical_url: "https://vercel.com/kb/guide/how-do-i-perform-vercel-redirects-based-on-query-strings"
published: 2025-11-03
last_updated: 2025-11-10
authors: Ismael Rumzan
related:
  - /docs/configuration
  - /docs/project-configuration
install_vercel_plugin: npx plugins add vercel/vercel-plugin
---

When using redirects with the [`vercel.json`](https://vercel.com/docs/configuration#project/redirects) or [`next.config.js`](https://nextjs.org/docs/api-reference/next.config.js/redirects) configuration file, your **URL** may contain query string parameters that you would like to use in your redirection. This article explains the two methods possible to achieve this.

## Include query strings in redirect destination

By default, all query strings that are found in the **source** path will be passed to the **destination** path. In the example configuration below, if the source is `/?baz=10`, the destination will be `/lol/?path=foo&baz=10`.

```json
{
   "redirects":[
      {
         "source":"/",
         "destination":"/lol/?path=foo"
      }
   ]
}
```

## Redirect based on value of query string

Using the `has` property, you can redirect to a specific route based on the value of the query parameter being present. For example, in the configuration below, if the source is `/specific/mypath?page=home&id=1000`, it will be redirected to `/another/mypath?page=home&id=1000`.

```json
{
  "redirects": [
    {
      "source": "/specific/:path*",
      "has": [
        {
          "type": "query",
          "key": "page",
          "value": "home"
        }
      ],
      "permanent": false,
      "destination": "/another/:path*"
    }
  ]
}
```

For details related to using the `has` field, review this [page](https://nextjs.org/docs/api-reference/next.config.js/redirects#header-cookie-and-query-matching) for `next.config.js` and this [page](https://vercel.com/docs/project-configuration#project-configuration/redirects) for `vercel.json`.