> ## Documentation Index
> Fetch the complete documentation index at: https://docs.shipways.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Domains, DNS and redirects

> Getting traffic to the site, and moving it around once it arrives.

A site's **Domains** tab holds the addresses it answers on, the
[certificates](/sites/certificates) for them, and the paths that have moved.

## DNS

The most common reason a new site does not answer is that nothing ever pointed
at it.

The tab spells out the exact `A` record to add for each of the site's names,
with the server's address, so there is nothing to work out. Add them at
whoever holds the domain.

Until they resolve to this server, two things are true: the site will not
answer, and **Let's Encrypt cannot verify it**, so a certificate request will
fail.

## Aliases

Names the site also answers on, beyond its primary domain — `www.example.com`
beside `example.com`, or a second brand on the same application.

Each alias needs its **own DNS record**, and a certificate has to cover it
before it is served over HTTPS. Adding an alias does not extend an existing
certificate; request a new one after adding it.

## Redirects

Paths on this site that send people somewhere else.

Answered by nginx before the application sees the request, so a page that has
moved costs nothing to serve — no PHP process, no framework boot.

**From** is a path on this site. **To** is another path here, or a full address
anywhere.

**Kind** is the status code:

* **301** — moved for good.
* **302** — moved for now.
* **307** and **308** keep the method and the body, which matters for anything
  that was being posted to. A 301 on a `POST` endpoint turns it into a `GET`
  and loses the body.

**Everything under this path too** matches the prefix rather than the exact
path. All of it lands on the same address — the rest of the path is not carried
over, so `/old/a` and `/old/b` both end up at wherever you sent `/old`.

Redirects are written into the site's nginx configuration and are live as soon
as it reloads.
