Drag-n-Drop
to upload your archive
Redirect Generator
Generate 301 redirect rules for any server
List your old paths and where they should go now, pick a status code, and get a ready-to-paste snippet for Apache, Nginx, Netlify, Vercel, IIS, or a plain HTML meta refresh. Everything is generated in your browser, so nothing about your site structure is ever uploaded.
Redirects
One redirect per line. Separate the old path from the new URL with a comma, a tab, or spaces. Lines starting with # are ignored.
-
Six formats from one list
Type the redirect map once and switch between
.htaccess, Nginx, Netlify, Vercel, IIS, and meta refresh. The syntax is rewritten instantly, so you never hand-translate rules between servers again. -
Escaping handled for you
A dot in
/products.phpis a wildcard inside a RewriteRule pattern. The generator escapes regex metacharacters for Apache, XML entities forweb.config, and quotes forvercel.jsonautomatically. -
Catches loops and duplicates
A path that redirects to itself is an infinite loop, and two rules with the same source mean the second one never fires. Both are flagged as you type, before the file reaches production.
How to generate redirect rules
-
1
Enter each old path and the URL it should point to now. Use Paste a list if you already exported a redirect map from a spreadsheet or a crawler.
-
2
Pick the status code (301 for a permanent move) and the server you are deploying to.
-
3
Copy the snippet or download it under the correct file name, then upload it to your site root.
What to know before you ship a redirect map
-
301 vs 302: pick the honest one
A 301 says the old address is gone for good, so search engines drop it from the index and pass its accumulated link equity to the new one. A 302 says “back soon”, so the old URL keeps its ranking and the new one earns none. Using 302 for a permanent migration is one of the most common ways sites quietly lose traffic. 308 and 307 are the strict versions that also preserve the original request method, which matters for POST endpoints and APIs.
-
Redirect chains cost you
After two or three site redesigns it is easy to end up with
/a→/b→/c→/d. Every hop is another round trip for the visitor, and crawlers give up on long chains. Point every old path straight at its final destination instead of at the previous redirect. Writing the whole map in one table makes those chains visible: if a destination in one row also appears as a source in another, collapse them. -
No server config? Use meta refresh
Pure static hosting has no server-side config to edit — there is no Apache module or Nginx block to reload, so a true 301 header is off the table. The workaround is a small HTML file at the old path containing a
meta http-equiv="refresh", arel="canonical"pointing at the new URL, and a plain link as the no-JavaScript fallback. It is weaker than a real 301, but the canonical tag is what actually consolidates the ranking signals.
Migrating a site? Host the new version on free static hosting
Frequently asked questions
What does this redirect generator do?
You enter pairs of old and new URLs, pick a status code, and choose your hosting stack. The tool writes the matching configuration: Apache .htaccess rules, an Nginx block, a Netlify _redirects file, a Vercel vercel.json, an IIS web.config, or standalone HTML meta refresh pages. Everything is generated in your browser.
What is the difference between a 301 and a 302 redirect?
A 301 is permanent: search engines transfer ranking signals to the new URL, drop the old one from the index over time, and browsers cache it aggressively. A 302 is temporary: the old URL stays indexed and signals are not consolidated. Use 301 for migrations and renamed pages, and 302 only when you genuinely intend to restore the original URL. 308 and 307 behave like 301 and 302 but forbid changing the request method.
Do redirects lose link equity?
A single, correctly implemented 301 to a closely matching page passes essentially all of its ranking signals today. The real losses come from redirect chains, redirecting everything to the homepage instead of the equivalent page, and mixing redirects with canonical tags that point somewhere else. Map old to new one to one wherever a genuine equivalent exists.
What is a redirect chain and why does it matter?
A chain is A redirecting to B redirecting to C. Every hop costs latency for the user and crawl budget for the bot, and Google stops following after a handful of hops. When you add a new redirect, update the older rules that pointed at the intermediate URL so they jump straight to the final destination.
How do I redirect on static hosting with no server config?
Use the HTML meta refresh output. It generates a small standalone page for each old URL containing <meta http-equiv="refresh" content="0;url=...">, a canonical link pointing at the new address and a plain fallback link. It is not a true 301, so it is weaker for SEO than a server redirect, but it works anywhere you can upload a file, which makes it the practical option for purely static sites.
Where do I put each generated file?
.htaccess goes in the directory it should govern, usually the web root, on an Apache host with AllowOverride enabled. The Nginx block goes inside the relevant server block and needs a reload. _redirects goes in the published folder on Netlify. vercel.json goes at the project root. web.config goes in the IIS site root. Meta refresh pages go at the old paths themselves.
Should I redirect HTTP to HTTPS here too?
Yes, if your host does not already do it, and it should be a 301. Serving the same page on both protocols splits signals and trips mixed content warnings. You can confirm the certificate is in place with our SSL Checker, and check where a URL currently points using the URL Parser.
How do I verify the redirects are working?
Request each old URL and confirm the status code and the Location header, for example with curl -I. Check that the destination returns 200 rather than another redirect, then watch the Pages report in Search Console over the following weeks to confirm the old URLs are being replaced by the new ones.