Your hosted blog starts at https://amplifysignal.com/b/acme.com/. Move it to
https://acme.com/blog (a folder on your domain) or https://blog.acme.com (a subdomain):
enter the address in Settings → Blog address, do the one step
below for your choice, then press Check. Links, canonical tags, the sitemap and the RSS feed switch to
the new address the moment the check passes, and the old /b/ links redirect to it.
| Address | What you configure | Good to know |
|---|---|---|
Folderhttps://acme.com/blog |
One proxy rule on the host that already serves acme.com: everything under /blog is fetched from us. |
Best for search. Every article counts toward your root domain's authority instead of a separate host. Needs a host that can proxy (Cloudflare, Vercel, Netlify, Next.js, nginx, Caddy… snippets below). |
Subdomainhttps://blog.acme.com |
One CNAME record at your DNS provider. We issue and renew the certificate. | Zero code, works with any host. Search engines treat it as its own site, so authority builds separately from acme.com. |
Anything else that ends up at the address is fine too — /articles, /guides, news.acme.com. The path can only contain letters, digits, -, _ and ., and the blog must have the whole path to itself: if acme.com/blog already serves something, pick another path or move that content first.
https://blog.acme.com and save.Type Name Target
CNAME blog.acme.com sites.amplifysignal.com
If your DNS is on Cloudflare, leave the record DNS only (grey cloud). An apex address like https://acme.com itself needs a provider that supports CNAME flattening or ALIAS records at the root.sites.amplifysignal.com exactly — not at an IP address, and not at amplifysignal.com./blog to usYour host keeps serving acme.com; it fetches anything under /blog from
https://sites.amplifysignal.com/b/acme.com/ and returns it as if it were its own. The contract is small:
/blog and /blog/* to https://sites.amplifysignal.com/b/acme.com/, keeping the rest of the path
(/blog/hello-world/ → https://sites.amplifysignal.com/b/acme.com/hello-world/). Feeds, the sitemap and article images all live under that path, so nothing else needs proxying.sites.amplifysignal.com (a Host header of sites.amplifysignal.com). Most platforms do this on their own for an external rewrite; nginx and Caddy need it set./. Next.js in particular redirects them away unless told not to (see below).Enter https://acme.com/blog in Settings → Blog address, add the rule for your platform, then press Check.
Workers → Create → paste, deploy, then add a route acme.com/blog* on the acme.com zone (Worker settings → Domains & Routes). The DNS record for acme.com must be proxied (orange cloud) for the route to run.
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/blog" || url.pathname.startsWith("/blog/")) {
const target = new URL(request.url);
target.hostname = "sites.amplifysignal.com";
target.pathname = "/b/acme.com" + url.pathname.slice("/blog".length);
return fetch(new Request(target.toString(), request));
}
return fetch(request);
},
};
vercel.json at the project root:
{
"rewrites": [
{ "source": "/blog", "destination": "https://sites.amplifysignal.com/b/acme.com/" },
{ "source": "/blog/:path*", "destination": "https://sites.amplifysignal.com/b/acme.com/:path*" }
]
}
next.config.js. skipTrailingSlashRedirect keeps Next from redirecting /blog/hello-world/ to /blog/hello-world:
module.exports = {
skipTrailingSlashRedirect: true,
async rewrites() {
return [
{ source: "/blog", destination: "https://sites.amplifysignal.com/b/acme.com/" },
{ source: "/blog/:path*", destination: "https://sites.amplifysignal.com/b/acme.com/:path*" },
];
},
};
A _redirects file in the publish directory (or the same two rules in netlify.toml). Status 200 makes it a proxy, not a redirect:
/blog https://sites.amplifysignal.com/b/acme.com/ 200
/blog/* https://sites.amplifysignal.com/b/acme.com/:splat 200
location = /blog { return 301 /blog/; }
location /blog/ {
proxy_pass https://sites.amplifysignal.com/b/acme.com/;
proxy_set_header Host sites.amplifysignal.com;
proxy_ssl_server_name on;
proxy_redirect off;
}
acme.com {
handle_path /blog/* {
rewrite * /b/acme.com{uri}
reverse_proxy https://sites.amplifysignal.com {
header_up Host sites.amplifysignal.com
}
}
# …the rest of your site
}
sites.amplifysignal.com, not to amplifysignal.com. The first is our edge, which knows the request is yours; the second would redirect your visitors back to the address you're setting up. Check tells you if a rule points at the wrong one.<address>/sitemap.xml; add a Sitemap: line for it to your site's robots.txt, or submit it in Search Console (a Domain property already covers a subdomain; a URL-prefix property needs the blog's own).https://amplifysignal.com/b/acme.com/… answers with a permanent redirect to the same article on your domain, and social posts we already sent stay clickable.https://amplifysignal.com/b/acme.com/. Search engines follow the canonicals either way.