Convert Netlify _redirects to vercel.json redirects
Paste your _redirects. You get a vercel.json with /* splats rewritten as :path* and your status codes preserved. Free up to 200 rules, no signup. Load an example.
Warnings
What to know about this conversion
Vercel's redirects use path-to-regexp sources, so /blog/* /news/:splat 301 becomes /blog/:path* to /news/:path*, and :year segments carry over as-is. Rules are matched in order, the same as Netlify.
On Vercel, permanent: true is a 308 and permanent: false is a 307, not 301 and 302. RedirectForge writes an explicit statusCode for 301, 302 and 303 so your redirects keep the code they had.
Netlify features with no direct equivalent are flagged rather than converted: a 200 rewrite belongs in Vercel's rewrites array, Country= and Role= conditions map to a has block, and the ! force flag has no meaning on Vercel because redirects run before static files.
Frequently asked questions
Do I paste the whole vercel.json or just the redirects?
The output is a complete {"redirects": [...]} object. If you already have a vercel.json, copy the array into your existing redirects key. The same objects work in next.config.js; pick Next.js as the target to get the module.exports wrapper.
Why statusCode instead of permanent?
permanent: true means 308 on Vercel, which also preserves the request method. A 301 from Netlify would silently change behaviour, so the converter keeps 301, 302 and 303 explicit and only uses permanent for 307 and 308.
Are Netlify proxies (200 rewrites) converted?
No. A 200 status in _redirects is a rewrite or proxy, not a redirect. Those lines are listed in the warnings so you can move them to the rewrites array in vercel.json.
Other pairs: .htaccess to Cloudflare, .htaccess to Netlify, Netlify to Vercel, nginx to Cloudflare, or any format to any other.