Convert .htaccess redirects to a Netlify _redirects file
Paste your .htaccess. You get a _redirects file for your publish directory, with $1 wildcards rewritten as :splat. Free up to 200 rules, no signup. Load an example.
Warnings
What to know about this conversion
Netlify reads _redirects from the root of your publish directory (or the [[redirects]] table in netlify.toml). Rules are evaluated top to bottom and the first match wins, so the converter preserves your original order.
Netlify has one wildcard, /* at the end of a path, with :splat in the destination. Apache's ^/old/(.*)$ /new/$1 maps onto it exactly; anything with more than one capture, a character class, or a mid-path wildcard is written as a commented line under the rule with a warning.
The usual HTTPS and www RewriteCond blocks are not needed on Netlify: HTTPS is always on and domain redirects are set under Domain management. Those rules are reported, not converted, so you can delete them knowingly.
Frequently asked questions
What does the ! after a status mean?
Force. Netlify normally serves an existing file instead of applying a redirect to that path; 301! applies the redirect even when the file exists. Apache redirects always take precedence, so the converter does not add ! automatically; add it by hand where you need shadowing.
Which default status does Netlify use?
301 when the status column is omitted. Apache's Redirect without a status is a 302, so the converter writes the status explicitly on every line to avoid a silent change.
Can Netlify do regex redirects?
No. Netlify supports :param segments and a trailing splat only. Patterns that fit those shapes are converted; the rest appear in the warnings with their line numbers for a manual rewrite.
Other pairs: .htaccess to Cloudflare, .htaccess to Netlify, Netlify to Vercel, nginx to Cloudflare, or any format to any other.