Skip to content

[UX][P2] Add locale-prefix and legacy-route redirects for common direct-entry tool URLs #327

Description

@baixiangcpp

User-facing finding

Visual browser audit on 2026-07-01 found direct-entry route confusion:

  • https://byteflow.tools/qr-code-generator shows the generic Page not found screen instead of redirecting to /en/qr-code-generator or the preferred locale route.
  • https://byteflow.tools/en/csv-to-json shows Page not found, while the actual tool is /en/csv-json-converter.

Why this matters

Users often paste, guess, or share direct tool URLs. A privacy-first utility site should be forgiving for predictable paths, especially for high-intent tool names and legacy/SEO-style slugs.

A 404 at this stage feels like the tool is missing, even when the catalog contains the tool under a slightly different slug.

Recommended implementation

Add a generated redirect/alias registry for:

  • no-locale tool paths -> preferred/default locale tool path;
  • obvious legacy aliases -> canonical tool slugs;
  • common naming variants such as csv-to-json -> csv-json-converter;
  • route aliases should preserve query strings and hashes.

Keep this static-export compatible. If runtime redirect scripts are used, they should run before users see the 404 shell.

Acceptance criteria

  • /qr-code-generator redirects to the locale-aware QR tool route.
  • /json-formatter, /base64-encode-decode, and other high-traffic direct tool paths redirect to locale-aware routes.
  • /en/csv-to-json redirects to /en/csv-json-converter or another clearly canonical CSV/JSON route.
  • Query string and hash fragments are preserved.
  • Add a route/legacy redirect guard so new aliases stay synchronized with the generated tool index.

Related

This complements the first-load/locale audit in #320, but should be tracked separately because it is a direct route-resolution/404 issue rather than only a flicker or layout-shift issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions