RedirectForge by ThemeMend

Convert .htaccess redirects to Cloudflare Bulk Redirects CSV

Paste your .htaccess. You get a CSV with the exact header Cloudflare's importer expects, plus a warning for every rule the free plan cannot hold. Free up to 200 rules, no signup. Load an example.

Output

What to know about this conversion

Cloudflare Bulk Redirects live on the account, not on the zone: you create a list under Account Home, upload the CSV, then enable it in a Bulk Redirect Rule. The Free plan allows 10,000 URL redirects across your lists, which is enough for most site moves.

Bulk Redirects match a full URL or a subpath. They do not run regular expressions, so RewriteRule ^blog/(\d+)/(.*)$ cannot become a row. RedirectForge leaves such rules out of the CSV and lists them under Warnings with a pointer to Redirect Rules with regex_replace(), available on Business and Enterprise.

Two Apache details that bite: Redirect without a status is a 302, and RewriteCond lines (the usual HTTPS or www forcing) have no CSV equivalent. Both are surfaced as warnings so you can decide, rather than being silently converted.

Frequently asked questions

Why does every source_url need my domain?

Cloudflare's importer requires a hostname in source_url (example.com/old-path). Enter your domain in the Domain field and it is prefixed to every source, and relative targets become absolute URLs on the same host.

What happens to my RewriteRule lines?

A RewriteRule with a plain prefix pattern like ^news/(.*)$ becomes a subpath row with preserve_path_suffix set. Patterns with character classes, quantifiers or RewriteCond conditions are not expressible in Bulk Redirects and are reported with their line numbers instead.

Which status codes does the CSV accept?

301, 302, 307 and 308. Apache's permanent maps to 301 and temp to 302. A 303 or 410 has no Bulk Redirects equivalent and is listed in the warnings.

Other pairs: .htaccess to Cloudflare, .htaccess to Netlify, Netlify to Vercel, nginx to Cloudflare, or any format to any other.