Rule demo-identical-1 source relative URL resolves to https://old.example.test/guide; the stored value is unchanged.
READ-ONLY · SAVED SNAPSHOT
Migration
audit report
This report reads the saved browser workspace. It does not write to storage or inspect live URLs.
01 / FINDINGS
Audit findings
Rule demo-identical-1 target relative URL resolves to https://new.example.test/manual; the stored value is unchanged.
Rule demo-conflict-1 source relative URL resolves to https://old.example.test/conflict; the stored value is unchanged.
Rule demo-conflict-1 target relative URL resolves to https://new.example.test/one; the stored value is unchanged.
Rule demo-conflict-2 source relative URL resolves to https://old.example.test/conflict; the stored value is unchanged.
Rule demo-conflict-2 target relative URL resolves to https://new.example.test/two; the stored value is unchanged.
Rule demo-self source relative URL resolves to https://old.example.test/self; the stored value is unchanged.
Rule demo-cycle-a source relative URL resolves to https://old.example.test/loop-a; the stored value is unchanged.
Rule demo-cycle-b source relative URL resolves to https://old.example.test/loop-b; the stored value is unchanged.
Rule demo-chain-a source relative URL resolves to https://old.example.test/legacy; the stored value is unchanged.
Rule demo-chain-b source relative URL resolves to https://old.example.test/middle; the stored value is unchanged.
Rule demo-chain-b target relative URL resolves to https://new.example.test/final; the stored value is unchanged.
Canonical source https://old.example.test/guide has identical duplicate rules. They remain in the workspace and CSV; Nginx export explicitly deduplicates this mapping.
Canonical source https://old.example.test/conflict has conflicting target destinations; resolve this source to one destination before export.
Rule demo-self redirects https://old.example.test/self to the same request URI (target fragments are not sent in HTTP requests).
Configured redirect cycle detected across 1 canonical request URI; review the listed rules.
Configured redirect cycle detected across 2 canonical request URIs; review the listed rules.
Configured chain: https://old.example.test/self targets request URI https://old.example.test/self, which is also a configured source. Trace the links; PathHarbor does not flatten them.
Configured chain: https://old.example.test/loop-a targets request URI https://old.example.test/loop-b, which is also a configured source. Trace the links; PathHarbor does not flatten them.
Configured chain: https://old.example.test/loop-b targets request URI https://old.example.test/loop-a, which is also a configured source. Trace the links; PathHarbor does not flatten them.
Configured chain: https://old.example.test/legacy targets request URI https://old.example.test/middle, which is also a configured source. Trace the links; PathHarbor does not flatten them.
Catalog row 2 duplicates canonical source https://old.example.test/guide; coverage counts unique valid URLs only.
Catalog row 5 is not a valid source URL: URL cannot contain literal whitespace.
Catalog source https://old.example.test/conflict has conflicting destinations and is excluded from mapped coverage.
Catalog source https://old.example.test/unmapped has no mapping.
02 / COVERAGE
Source catalog coverage
Coverage is based on this supplied source catalog. A mapping is not proof of a safe or live destination.
| Unique valid URLs | 3 |
|---|---|
| Mapping present | 1 |
| Unmapped | 2 |
| Duplicate entries | 1 |
| Invalid entries | 1 |
Unmapped catalog URLs
Showing the first 2 of 2 unmapped URLs. Full data is retained in the JSON workspace export.
- https://old.example.test/conflict
- https://old.example.test/unmapped
03 / RULE INVENTORY
Redirect rules · 9
| Source · raw / canonical | Target · raw / canonical | Note |
|---|---|---|
/guidehttps://old.example.test/guide | /manualhttps://new.example.test/manual | First identical duplicate. |
https://old.example.test/guidehttps://old.example.test/guide | https://new.example.test/manualhttps://new.example.test/manual | Canonical duplicate of demo-identical-1. |
/conflicthttps://old.example.test/conflict | /onehttps://new.example.test/one | Conflicting destination A. |
/conflicthttps://old.example.test/conflict | /twohttps://new.example.test/two | Conflicting destination B. |
/selfhttps://old.example.test/self | https://old.example.test/self#sectionhttps://old.example.test/self#section | Fragment does not prevent an HTTP self-redirect. |
/loop-ahttps://old.example.test/loop-a | https://old.example.test/loop-bhttps://old.example.test/loop-b | First edge of a two-rule cycle. |
/loop-bhttps://old.example.test/loop-b | https://old.example.test/loop-ahttps://old.example.test/loop-a | Second edge of a two-rule cycle. |
/legacyhttps://old.example.test/legacy | https://old.example.test/middlehttps://old.example.test/middle | Configured first hop; not flattened. |
/middlehttps://old.example.test/middle | /finalhttps://new.example.test/final | Configured second hop. |
Exact request matching preserves case, query-string order, and percent-encoding. Unlisted variants are not redirected by generated config. This report reflects supplied data only; it performs no crawling or live HTTP checks and makes no deployment or SEO guarantee.