Skip to content

site: emit the URLs Cloudflare actually serves - #359

Merged
caezium merged 2 commits into
mainfrom
site/extensionless-urls-v2
Aug 7, 2026
Merged

site: emit the URLs Cloudflare actually serves#359
caezium merged 2 commits into
mainfrom
site/extensionless-urls-v2

Conversation

@caezium

@caezium caezium commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Cloudflare's static-asset handler 307s /install.html to /install. Every canonical, og:url, sitemap entry, JSON-LD @id, and internal link pointed at the redirect rather than the served URL, so each canonical pointed at a redirect, which is treated as a soft error.

All emitted URLs are extensionless now. Files keep their .html names on disk; only links change.

Verified: no href ending in .html in any generated page, --check green, 7/7 analytics tests and 44/44 release-helper tests pass.

caezium added 2 commits August 7, 2026 10:54
Cloudflare's static-asset handler 307s /install.html to /install, so
every canonical, og:url, sitemap entry, JSON-LD id, and internal link we
emitted pointed at a redirect rather than at the served URL. A canonical
that redirects is treated as a soft error, which would have undercut the
whole SEO pass and the domain move at the same time.

All emitted URLs are now extensionless, matching what the asset handler
returns. Files keep their .html names on disk; only the links change.

Verified: no href ending in .html remains in any generated page, the
analytics tests still pass, and --check is green.
Cloudflare serves a matching static asset without invoking the script, so
worker/index.js never ran for any real page and burrow.henryzh.dev
returned 200 instead of redirecting. Verified against the live deploy:
/, /install and /docs all served 200 on the old host.

run_worker_first sends every request through the worker, which 301s the
legacy hostname and otherwise falls through to env.ASSETS.
@caezium
caezium merged commit f6fca28 into main Aug 7, 2026
4 checks passed
@caezium
caezium deleted the site/extensionless-urls-v2 branch August 7, 2026 18:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant