Skip to main content
This guide forwards acme.com/blog to Notra from an Astro site. Read the steps on every platform first, and replace acme.notra.site with the Notra address on your site’s Domains page. The Fernhill example is a complete Astro site set up this way.

Static Astro sites

A fully static Astro site has no server to forward requests, so the rewrite goes into your host’s config. Follow the guide for Vercel, Netlify or Cloudflare, and delete any src/pages/blog and src/pages/changelog pages.

With an adapter

With an adapter like @astrojs/node, a catch-all route forwards both sections from your own server. Add the proxy once:
src/lib/notra-proxy.ts
Then route each section to it, in src/pages/blog/[...path].ts and src/pages/changelog/[...path].ts:
src/pages/blog/[...path].ts
[...path] also matches /blog itself, and the rest of your site stays static.

Limits to keep in mind

  • Trailing slashes. trailingSlash: "always" redirects /blog to /blog/, which fails the domain check, so keep the default "ignore".
  • Origin check. Site analytics posts time on page to /blog/_notra/e, and security.checkOrigin can reject it behind a proxy that rewrites the host. Turn it off if the proxy routes are your only on-demand routes, or check that the endpoint answers.
  • Your own middleware. src/middleware.ts runs for the section paths too, so make sure it doesn’t redirect them or ask for a login.
Last modified on October 12, 2026