Skip to content

Domains and routes

Every redirect in RouteSeam is built from two objects: a Domain and a Route. A domain is the hostname visitors type; a route is the rule that decides where they end up. Understanding how they relate makes the dashboard and API obvious.

A domain is the source hostname you want to redirect — oldcompany.com after a rebrand, or legacy.example.com after a migration. You add it once, point one DNS record at RouteSeam, and RouteSeam verifies DNS, issues an HTTPS certificate automatically, and starts redirecting.

A few rules about domains:

  • Each hostname can be claimed exactly once across all of RouteSeam. This prevents one customer from hijacking another’s hostname.
  • A domain has a lifecycle — it moves from pending_dns through verification and TLS provisioning to active. See domain lifecycle for the full state machine.
  • A domain only redirects once it is active. Before that, it is onboarding or in a failed state.

A route is the redirect rule attached to a domain. When you add a domain through the dashboard, RouteSeam creates its route for you. A route has these settings:

  • Destination URL — where traffic goes. Must be a valid http:// or https:// URL. RouteSeam validates it at creation and rejects destinations that would create an obvious redirect loop (foo.comfoo.com, or two RouteSeam domains pointing at each other).
  • Status code — the HTTP response code: 301, 302, 307, or 308. The default is 308 Permanent Redirect, which is permanent, cacheable, and preserves the request method. For guidance on choosing, see redirect types.
  • Preserve path — on by default. With it on, old.com/products/widget redirects to new.com/products/widget. With it off, every request lands on the destination root.
  • Preserve query — on by default. With it on, old.com/products?id=123 keeps its ?id=123 through the redirect, so tracking parameters such as utm_source survive.
  • Include www — a setting on the domain rather than the route. When you add example.com, RouteSeam offers Include www.example.com so both example.com and www.example.com redirect, without creating a second domain object.
  • Enabled / disabled — a route can be switched off without deleting it. A disabled route is removed from the edge configuration; traffic to that hostname then gets no redirect until you re-enable it.

A visitor’s request to https://old.com/products/widget?id=123 is answered at the edge in constant time: RouteSeam looks up the hostname old.com, finds its route, applies preserve-path and preserve-query, and responds — for example:

HTTP/1.1 308 Permanent Redirect
Location: https://new.com/products/widget?id=123

The lookup happens from an in-memory routing table at the edge — there is no database query on the request path. See architecture for how the configuration gets there.

You can change the destination, status code, or path/query options at any time from the domain detail page. Changes are published to the edge as a new configuration version and are live within seconds. See domain lifecycle for what happens when you disable or delete a domain entirely.