[{"data":1,"prerenderedAt":220},["ShallowReactive",2],{"navigation":3,"hamburger-docs-nav":112,"changelog-entries":146},[4],{"title":5,"path":6,"stem":7,"children":8,"page":44},"Docs","/docs","docs",[9,45],{"title":10,"path":11,"stem":12,"children":13},"Introduction","/docs/getting-started","docs/00.getting-started/index",[14,15,19],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Quickstart","/docs/getting-started/quickstart","docs/00.getting-started/00.quickstart",{"title":20,"path":21,"stem":22,"children":23,"page":44},"Core Concepts","/docs/getting-started/core-concepts","docs/00.getting-started/core-concepts",[24,28,32,36,40],{"title":25,"path":26,"stem":27},"What is an Organisation?","/docs/getting-started/core-concepts/what-is-an-org","docs/00.getting-started/core-concepts/01.what-is-an-org",{"title":29,"path":30,"stem":31},"What is a Service?","/docs/getting-started/core-concepts/what-is-a-service","docs/00.getting-started/core-concepts/02.what-is-a-service",{"title":33,"path":34,"stem":35},"Routing Traffic","/docs/getting-started/core-concepts/routing-traffic","docs/00.getting-started/core-concepts/03.routing-traffic",{"title":37,"path":38,"stem":39},"Securing your content","/docs/getting-started/core-concepts/securing-content","docs/00.getting-started/core-concepts/04.securing-content",{"title":41,"path":42,"stem":43},"Invalidating Cache","/docs/getting-started/core-concepts/invalidating-cache","docs/00.getting-started/core-concepts/05.invalidating-cache",false,{"title":10,"path":46,"stem":47,"children":48},"/docs/configuration","docs/01.configuration/index",[49,50,99],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":54,"page":44},"Configuration","/docs/configuration/configuration","docs/01.configuration/configuration",[55,59,63,67,71,75,79,83,87,91,95],{"title":56,"path":57,"stem":58},"Domains","/docs/configuration/configuration/domains","docs/01.configuration/configuration/00.domains",{"title":60,"path":61,"stem":62},"Origins","/docs/configuration/configuration/origins","docs/01.configuration/configuration/01.origins",{"title":64,"path":65,"stem":66},"General","/docs/configuration/configuration/general","docs/01.configuration/configuration/02.general",{"title":68,"path":69,"stem":70},"High Availability","/docs/configuration/configuration/high-availability","docs/01.configuration/configuration/03.high-availability",{"title":72,"path":73,"stem":74},"Query Parameters","/docs/configuration/configuration/query-parameters","docs/01.configuration/configuration/04.query-parameters",{"title":76,"path":77,"stem":78},"Headers","/docs/configuration/configuration/headers","docs/01.configuration/configuration/05.headers",{"title":80,"path":81,"stem":82},"Cookies","/docs/configuration/configuration/cookies","docs/01.configuration/configuration/06.cookies",{"title":84,"path":85,"stem":86},"Security","/docs/configuration/configuration/security","docs/01.configuration/configuration/07.security",{"title":88,"path":89,"stem":90},"Image Handling","/docs/configuration/configuration/image-handling","docs/01.configuration/configuration/08.image-handling",{"title":92,"path":93,"stem":94},"Overrides","/docs/configuration/configuration/overrides","docs/01.configuration/configuration/09.overrides",{"title":96,"path":97,"stem":98},"API Configuration Reference","/docs/configuration/configuration/api-configuration","docs/01.configuration/configuration/10.api-configuration",{"title":100,"path":101,"stem":102,"children":103,"page":44},"Global Configuration","/docs/configuration/global-configuration","docs/01.configuration/global-configuration",[104,108],{"title":105,"path":106,"stem":107},"Managing TLS Certificates","/docs/configuration/global-configuration/tls","docs/01.configuration/global-configuration/TLS",{"title":109,"path":110,"stem":111},"Purge Tokens","/docs/configuration/global-configuration/purge-tokens","docs/01.configuration/global-configuration/purge-tokens",[113],{"title":5,"path":6,"stem":7,"children":114,"page":44},[115,126],{"title":10,"path":11,"stem":12,"children":116},[117,118,119],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":120,"page":44},[121,122,123,124,125],{"title":25,"path":26,"stem":27},{"title":29,"path":30,"stem":31},{"title":33,"path":34,"stem":35},{"title":37,"path":38,"stem":39},{"title":41,"path":42,"stem":43},{"title":10,"path":46,"stem":47,"children":127},[128,129,142],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":130,"page":44},[131,132,133,134,135,136,137,138,139,140,141],{"title":56,"path":57,"stem":58},{"title":60,"path":61,"stem":62},{"title":64,"path":65,"stem":66},{"title":68,"path":69,"stem":70},{"title":72,"path":73,"stem":74},{"title":76,"path":77,"stem":78},{"title":80,"path":81,"stem":82},{"title":84,"path":85,"stem":86},{"title":88,"path":89,"stem":90},{"title":92,"path":93,"stem":94},{"title":96,"path":97,"stem":98},{"title":100,"path":101,"stem":102,"children":143,"page":44},[144,145],{"title":105,"path":106,"stem":107},{"title":109,"path":110,"stem":111},[147],{"id":148,"title":149,"body":150,"date":210,"description":211,"extension":212,"meta":213,"navigation":214,"path":215,"seo":216,"stem":217,"type":218,"__hash__":219},"changelog/changelog/2026-09-25-release.md","Captcha bot protection and URL Rewrite",{"type":151,"value":152,"toc":203},"minimark",[153,158,184,191,195,198],[154,155,157],"h3",{"id":156},"choose-your-standard-bot-protection-mode","Choose your Standard Bot Protection mode",[159,160,161,162,166,167,171,172,175,176,179,180,183],"p",{},"Standard Bot Protection now supports a ",[163,164,165],"strong",{},"Captcha"," challenge in addition to the existing\nsilent Proof of Work check. Choose which mode to run — ",[168,169,170],"code",{},"captcha",", ",[168,173,174],{},"pow",", or ",[168,177,178],{},"both"," (the\ndefault) — and configure how long a visitor stays cleared after passing a challenge with\na new Captcha clearance duration setting (default ",[168,181,182],{},"1h",").",[159,185,186,187,190],{},"See ",[188,189,84],"a",{"href":85}," for configuration details.",[154,192,194],{"id":193},"url-rewrite","URL Rewrite",[159,196,197],{},"You can now rewrite an incoming request's URL to a fixed path before it's matched against\nyour rules again. Common uses include routing everything under a path to a single-page\napp's entry point, or silently redirecting a retired page to its replacement without a\nclient-visible redirect.",[159,199,186,200,202],{},[188,201,64],{"href":65}," for configuration details and constraints.",{"title":204,"searchDepth":205,"depth":205,"links":206},"",2,[207,209],{"id":156,"depth":208,"text":157},3,{"id":193,"depth":208,"text":194},"2026-09-25","Captcha-based bot protection modes and URL Rewrite for single-page apps.","md",{},true,"/changelog/2026-09-25-release",{"title":149,"description":211},"changelog/2026-09-25-release","Release","LoKkchmj28TENxx7xFuojtTom_0RePct4tpYOtISICY",1792042639354]