{
  "id": "POL-021",
  "slug": "pol-021",
  "title": "Policy URLs must not redirect",
  "statement": "A URL submitted for a policy page must resolve directly rather than returning a 30x redirect.",
  "rationale": "TCR forbids redirection on fetched URLs, so a link that bounces from http to https, or from a marketing path to a canonical one, can fail even though a human browser follows it invisibly. This is one of the least intuitive rejections because the link works perfectly when you click it.",
  "layer": "POLICY_PAGE",
  "layerSlug": "policy-page",
  "object": "privacy policy URL + terms URL",
  "severity": "HIGH",
  "detectability": [
    "CRAWL"
  ],
  "failureClass": "RETRY_FIELD",
  "authorities": [
    "TCR"
  ],
  "applicabilityText": "Applies to every 10DLC registration.",
  "universal": true,
  "remediation": "Submit the final canonical URL — the one you land on after every redirect — including https and any trailing path normalisation.",
  "example": "Submit https://acmecoffee.com/privacy-policy rather than http://acmecoffee.com/privacy",
  "catalogIds": [
    "WEB-075"
  ],
  "phase": "approval",
  "automated": true,
  "url": "https://ekas.io/rules/10dlc/policy-page/pol-021/",
  "markdown": "https://ekas.io/rules/10dlc/policy-page/pol-021.md",
  "registry": "https://ekas.io/rules/10dlc/",
  "updated": "2026-07-25",
  "licence": "CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/"
}
