Paste your old → new URL pairs and get clean 301 redirect rules in five formats: Apache .htaccess, nginx, Cloudflare Workers, Cloudflare Pages _redirects, and Netlify _redirects. All processed locally in your browser. See the FAQ below for what each input and output does.
One pair per line. Use a comma, tab, space, or => to separate old and new URL.
Paste at least one pair to see the rules.
Paste one old → new URL pair per line. The old and new URL can be separated by any of: a comma, a tab, one or more spaces, or the arrow =>. Lines starting with # are treated as comments and ignored. Lines that can't be parsed are flagged but don't stop the rest from generating.
Fills the input with a few example rows so you can see all four accepted separator styles in action.
Opens a file picker so you can load an existing CSV, TSV, or TXT file of redirects directly instead of pasting them. The file is read in your browser; nothing uploads.
When on, prepends a small comment block to the output noting which tool generated it and the date. Some teams use this for change tracking.
When on, empty lines are ignored without producing warnings. When off, every blank line shows up as a "skipped" issue, which is useful for strict feedback on the input.
Five formats matching common hosting setups:
Apache .htaccess uses Redirect 301 rules in a file at the site root.
nginx produces location blocks for inside a server { } config.
Cloudflare Workers is JavaScript that runs at the edge.
Cloudflare Pages and Netlify both use a plain text _redirects file in the site root with the format /old /new 301.
All five produce equivalent 301 redirects.
Either works. If you paste a full URL like https://example.com/old-page, the tool extracts just the path for server-config formats (Apache, nginx, Cloudflare Pages, Netlify) since those run inside the site root. Cloudflare Workers output preserves full URLs because workers can run across hostnames.
A 301 is permanent. It tells search engines and browsers to update bookmarks and pass any ranking signals to the new URL. A 302 is temporary, used when the old URL will come back. This tool only outputs 301s.
If two rows have the same source URL, the tool flags it as a duplicate and only the first one is included in the output. Same target with different sources is fine (multiple old URLs can redirect to one new URL).
No. Parsing, validation, and rule generation all happen in your browser. Your URL list never leaves your machine.