Skip to content

Relative links on index pages outside release-notes/ resolve to wrong URL (404) #377

Description

@digitaldiina

Summary

Follow-up to #375/PR #376. The same relative-link resolution bug (a page built from a literal index.md/index.mdx file resolves any .//../ link on it against the wrong parent folder) also exists outside release-notes/, across en/, integrations/, contribute/, downloads/, and every translated tree (da/de/nl/no/sv).

Scope

Repo-wide scan, excluding release-notes/ (already fixed) and the machine-generated reference trees (en/database/tables/, en/api/archive-providers/reference/, en/api/mdo-providers/reference/, en/automation/crmscript/reference/, en/api/reference/webapi/, en/api/reference/restful/, per this project's established convention for this class of bulk work):

  • 752 index.md/index.mdx files scanned.
  • 552 files carry at least one confirmed vulnerable link (the resolved target verified to exist as a real file on disk).
  • 3,491 confirmed vulnerable links total, by top-level directory:
    • en: 1,123
    • no: 490
    • de: 462
    • sv: 457
    • da: 452
    • nl: 433
    • integrations: 58
    • contribute: 14
    • downloads: 2

Fix

Same mechanical transform used for #375/PR #376: resolve each relative target correctly against the file's real containing folder and rewrite it as a root-relative absolute path, validating every rewritten target resolves to a real file before writing.

Out of scope for this issue

While scanning, 147 additional relative links were found that do not resolve to a real file. These are a mix of two things unrelated to this issue's own mechanism:

  • Pre-existing dead links pointing at pages that don't exist for unrelated reasons.
  • Links authored with too many ../ segments for their actual file depth, escaping past the site root entirely (a related but distinct authoring bug, not the index-page resolution mechanism this issue tracks).

These are noted for visibility only. They are not fixed by this issue and are not filed separately at this time.

Not part of this session

Implementing the fix is not part of the session that filed this issue. This issue tracks the confirmed scope for a future scoped fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    broken-linkTriage: One or more links don't work or have the wrong target

    Type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions