Version 1.0.1: safer review of ambiguous chains
Chains reaching duplicate or conflicting source rows now report ambiguous_chain. Resolve the rows at blocked_at and rerun; the tool does not guess which rule wins.
Review a migration map before import
A small offline developer toolkit for finding duplicate sources, conflicting destinations, chains and loops in exact-path redirect plans.
Installation and usage
- Install Python 3, download and extract the ZIP.
- Open a terminal in the extracted folder.
- Run
python3 check.py example.csv. The sample reports a chain from /old through /middle to /new. - Create your CSV with the exact header
source,targetand two root-relative paths per row. - Run
python3 check.py your-map.csv, then review the JSON output and fix your original map manually.
Requirements, limits and removal
# Redirect Map Checker 1.0.1 Offline exact-path CSV review for developers planning WordPress migrations. Requires Python 3; tested with CPython 3.12.14 on Linux only. No packages required. 1. Extract the ZIP and open a terminal in its folder. 2. Run `python3 check.py example.csv` (Windows: `py check.py example.csv`). 3. The example reports a chain; exit code 1 means review issues were found. 4. Create a UTF-8 CSV with exactly `source,target` as the header, followed by root-relative paths such as `/old,/new`. 5. Run the command with your CSV filename. Exit 0 means no supported issues found; 2 means input error. 6. Review JSON output and edit your original map manually. Nothing is imported or modified. Supports duplicate/conflicting sources, chains and loops. Rejects queries, fragments, whitespace, backslashes, absolute and protocol-relative URLs. Case and trailing slashes remain distinct. Percent encoding is not normalized. Regex, wildcard, query matching, server rules and plugin precedence are not simulated. Maps containing duplicate sources require manual review; their outgoing edges are excluded from chain traversal. Use small maps that fit memory. Does not request URLs or verify destination availability, HTTP status, SEO outcomes or deployed redirects. No WordPress/WooCommerce integration or Windows execution tested. Privacy: reads your CSV locally; prints JSON to terminal; no networking, telemetry or site credentials. Do not publish private redirect maps. Remove by deleting the extracted folder. No site rollback needed; this tool never changes a site. If applying redirects separately, back up and test staging first. Troubleshooting: header errors require exactly source,target; use CSV quoting for commas. Invalid paths need manual review, not automatic conversion. Run tests with `python3 -m unittest -v`. Changelog: 1.0.0 (2026-10-30): initial release. MIT license; see LICENSE. Research 2026-10-30: https://redirection.me/support/import-export/ and https://developers.cloudflare.com/rules/url-forwarding/bulk-redirects/reference/csv-file-format/ . These systems have their own formats; this is a simplified review format, not an import adapter. Redirection and Cloudflare provide deployment/import features; this tool offers a local, dependency-free terminal review with exit codes. Also see https://docs.python.org/3/library/csv.html .
Official sources and alternatives
Researched 30 October 2026. Redirection imports and exports and Cloudflare Bulk Redirect CSV provide broader import and deployment workflows. This toolkit uses its own simpler review schema. Python CSV documentation.
Update and rollback
## 1.0.1 update — 2 November 2026 A chain that reaches a source with multiple rows now reports ambiguous_chain, with blocked_at and hops, instead of presenting a potentially misleading review_destination. Resolve duplicate/conflicting rows manually and run again. No redirect is changed automatically. Twelve automated tests pass on CPython 3.12.14/Linux. No live WordPress or Windows testing. Update: extract 1.0.1 into a new folder and use the same CSV. Rollback: keep your 1.0.0 folder and download; input format is unchanged. Remove either version by deleting its folder. Research checked 2026-11-02: https://redirection.me/support/create-redirects/ explains rule position controls processing order; https://redirection.me/support/import-export/ documents richer import formats. Redirection is an alternative for managing deployed rules; this local review tool deliberately does not simulate plugin precedence or import redirects.
Official rule ordering documentation. Previous version 1.0.0.