Requests flow through multiple routing layers in a fixed order. Each layer can modify, redirect, or terminate the request before it reaches the next step.
Vercel's CDN evaluates routing rules on every request before checking any cache or invoking your functions. You can define rules in your framework configuration, in vercel.json or vercel.ts, or as project-level routing rules from the dashboard. Project-level rules support the same core actions as deployment-level routes, with a few exceptions like Routing Middleware.
Routing Order
Blocks malicious traffic and enforces security rules
![]()
Routes between multiple applications on the same domain
![]()
Requests flow through these features in order. Each feature can modify or block the request before it reaches the next step.
![]()
Applies bulk redirects configured at the project level
![]()
Applies all routes defined in your deployment configuration
![]()
Applies routing rules configured from the dashboard or API
![]()
URL redirects
Use redirects when you need to:
Redirects send the visitor's browser to a different URL with an HTTP status code (301, 302, 307, or 308). The visitor sees the new URL in their address bar.
You can reach our customer support team by emailing info@yourcompany.example.com, calling +1 555-555-5556, or using the live chat on our website. Our dedicated team is available 24/7 to assist with any inquiries or issues.
We’re committed to providing prompt and effective solutions to ensure your satisfaction.
We offer a 30-day return policy for all products. Items must be in their original condition, unused, and include the receipt or proof of purchase. Refunds are processed within 5-7 business days of receiving the returned item.
Rewrites within your application
Same-application rewrites map a public URL to a different page or route inside your Vercel project. The visitor's browser still shows the original URL.
Use internal rewrites when you need to:
- Serve different content at the same URL (A/B testing, feature flags)
- Create clean public URLs that map to dynamic routes
- Maintain backward-compatible URLs after restructuring your app
{
"rewrites": [
{ "source":"/blog/:slug","destination":"/posts/:slug" }
]
}
Rewrites to external origins
External rewrites forward requests to a different backend or API outside your Vercel project. The visitor's browser still shows your domain, while the CDN proxies the request to the external origin.
Use external rewrites when you need to:
- Proxy API requests to an external backend under your domain
- Migrate to Vercel incrementally by routing some paths to your existing infrastructure
- Serve content from a headless CMS or third-party service at your own URL
{
"rewrites": [
{ "source":"/api/:path*","destination":"https://api.example.com/:path*" }
]
}
Vercel can also cache responses from external origins to reduce load on your backend.
Learn more
Last updated August 11, 2026
- Redirects
- Configuration redirects
- Bulk redirects
- Rewrites
- Project-level routing rules
- Monitoring and logs
- Runtime logs
Vercel for Platforms
Was this helpful?
Cross-link map: Routing (/docs/routing)From the Vercel docs graph (built 2026-09-21T05:26:59.511Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as JSON: https://vercel.com/docs/graph.jsonSemantically closest pagesProject-Level Routing Rules — Add redirects, rewrites, headers, and status codes to your project from the dashboard or API, without deploying new codeServices routing — Learn how Vercel routes public requests to services and how each service handles its own routes.Configuration Redirects — Learn how to define static redirects in your framework configuration or vercel.json with support for wildcards, patternGetting Started with Routing Middleware — Learn how you can use Routing Middleware, code that executes before a request is processed on a site, to provide speed aRedirects — Learn how to use redirects on Vercel to instruct Vercel's platform to redirect incoming requests to a new URL.This page links to (10)Vercel CDN Cache — Learn how Vercel's CDN cache stores your content across a global network to reduce latency and origin load.Runtime Logs — Learn how to search, inspect, and share your runtime logs with the Logs tab.Static Configuration with vercel.json — Learn how to use vercel.json to configure and override the default behavior of Vercel from within your project.Programmatic Configuration with vercel.ts — Define your Vercel configuration in vercel.ts with @vercel/config for type-safe routing and build settings.Monitoring — Query and visualize your Vercel usage, traffic, and more with Monitoring.Project-Level Routing Rules — Add redirects, rewrites, headers, and status codes to your project from the dashboard or API, without deploying new codeRedirects — Learn how to use redirects on Vercel to instruct Vercel's platform to redirect incoming requests to a new URL.Bulk Redirects — Learn how to import thousands of simple redirects from CSV, JSON, or JSONL files.Configuration Redirects — Learn how to define static redirects in your framework configuration or vercel.json with support for wildcards, patternRewrites on Vercel — Learn how to use rewrites to send users to different URLs without modifying the visible URL.Pages that link here (6)By site: vercel-changelog (2) · vercel-docs (4)From vercel-changelogPython projects now support routing rulesVercel's CDN now supports updating routing rules without a new deploymentFrom vercel-docsVercel CDN overview — Vercel's CDN is a globally distributed platform that handles routing, caching, security, and compression for every deploGlossary — Learn about the terms and concepts used in Vercel's products and documentation.Project-Level Routing Rules — Add redirects, rewrites, headers, and status codes to your project from the dashboard or API, without deploying new codeServices routing — Learn how Vercel routes public requests to services and how each service handles its own routes.