# Routes

All paths are relative to the installation base path. On a subdirectory install, prefix each with that base.

`{admin}` stands for the configured administrator path, which defaults to `admin` and is commonly changed.

## Public — pages

| Method | Path | Purpose |
|---|---|---|
| GET | `/` | Home feed (`?feed=all\|questions\|discussions\|unanswered`) |
| GET | `/q/{slug}` | Question, with `answers_page` |
| GET | `/questions/{slug}` | Legacy; 301 to `/q/{slug}` |
| GET | `/ask` | Ask form |
| GET | `/d` | Discussion listing, with `page` |
| GET | `/d/new` | Start a discussion |
| GET | `/d/{slug}` | Discussion, with `comments_page` |
| GET | `/c/{slug}` | Category |
| GET | `/t/{slug}` | Tag |
| GET | `/u/{username}` | Public profile |
| GET | `/search` | Search results (`noindex`) |
| GET | `/contact` | Contact form |
| GET | `/notifications` | Member notifications |
| GET | `/settings/profile` | Profile settings |
| GET | `/settings/api-tokens` | API tokens |

## Public — writes

All require POST and a valid CSRF token.

| Path | Purpose |
|---|---|
| `/ask` | Submit a question |
| `/q/{slug}/answer` | Post an answer |
| `/q/{slug}/comment` | Comment on a question |
| `/q/{slug}/vote` | Vote |
| `/q/{slug}/follow` | Follow or unfollow |
| `/q/{slug}/report` | Report |
| `/q/{slug}/accept` | Accept an answer |
| `/d/new` | Create a discussion |
| `/d/{slug}/comment` | Comment on a discussion |
| `/d/{slug}/follow` | Follow or unfollow |
| `/d/{slug}/report` | Report |
| `/c/{slug}/follow`, `/t/{slug}/follow` | Follow taxonomy |
| `/contact` | Send a contact message |

## Authentication

| Path | Purpose |
|---|---|
| `/login`, `/logout` | Sign in and out |
| `/register` | Registration |
| `/forgot-password`, `/reset-password` | Recovery |
| `/verify-email`, `/resend-verification` | Verification |
| `/lang/{locale}` | Locale switch |

## SEO

| Path | Purpose |
|---|---|
| `/robots.txt` | Robots policy |
| `/sitemap.xml` | Sitemap index |
| `/sitemaps/questions-{n}.xml` | Questions |
| `/sitemaps/topics-{n}.xml` | Topics |
| `/sitemaps/categories.xml` | Categories |
| `/sitemaps/tags.xml` | Tags |
| `/sitemaps/profiles-{n}.xml` | Profiles |

## Admin

`/{admin}?page={page}` with pages including `overview`, `questions`, `answers`, `comments`, `topics`, `categories`, `tags`, `editorial`, `users`, `reports`, `messages`, `notifications`, `appearance`, `menus`, `widgets`, `ads`, `custom-code`, `languages`, `plugins`, `settings`, `audit`, `system`.

Appearance sub-tabs: `branding`, `palette`, `typography`, `layout`, `profiles`, `css`, `package`.

Settings sub-tabs: `general`, `mail`, `seo`, `community`, `membership`, `maintenance`.

Every admin URL is generated through the admin URL helper. Never hard-code `/admin`.

## API

`/api/v1/...` — see [API v1](../06-api/API-V1.md).

## Indexability

Indexable: home, questions, topics, categories, tags, qualifying profiles.
Not indexable: search, auth, account, notifications, admin, API, installer.
