How the man.archlinux.org URL Addressing Scheme Works
Updated
Every manual page on man.archlinux.org can be reached with a URL of the form /man/<package>/<section>/<page>, and every part except the page name is optional. If you leave out the package, the site looks the page up in the core, extra, and multilib repositories in that order. If you leave out the section, you are redirected to the first match in the order 1, n, l, 8, 6, 3, 0, 2, 5, 7, 4, 9. The default language is en (also the fallback when a page has no translation), and the default output format is html; txt and raw are also supported.
The URL pattern
The site describes the scheme as /man/<package>/<section>/<page>/..., where only the page name is required. The package and section segments exist to disambiguate a page that appears in more than one package or more than one section.
| Segment | Required? | What it does | Default if omitted |
|---|---|---|---|
| package | No | Picks the page from a specific package | Searched in core, then extra, then multilib |
| section | No | Picks the section (e.g. 1, 3, 5, 3ssl, n) |
Redirect to first match in 1, n, l, 8, 6, 3, 0, 2, 5, 7, 4, 9 |
| page | Yes | The manual page name | — |
| language | No | Two-letter language code | en (also the fallback for untranslated pages) |
| format | No | Output format | html (txt and raw also supported) |
What happens when you omit parts
Omitting the package is the common case: you know the command name but not which package ships it. The repository order core → extra → multilib means a page in core wins over an identically named page in extra. That is usually what you want, since core packages are the base system.
Omitting the section triggers a redirect to the first section that contains the page, using the fixed order above. Section 1 (user commands) comes first, which matches how most people search: they type a command name and expect the command's man page, not a library or config-file page with the same name.
Because these lookups end in redirects, the URL in your address bar may change after you load it. Symbolic links behave the same way: pages like bunzip2(1) are implemented as HTTP 302 redirects, so a link to the alias lands you on the target page.
Worked examples
/man/ls— no package, no section. Resolveslsthroughcore,extra,multilib, then redirects to section1./man/core/ls— pins the page to thecorerepository./man/openssl/3ssl/SSL_CTX_new— uses a package (openssl), a subsection (3ssl), and the page name. Subsections and non-standard sections (0,n) exist because some packages organize their manuals that way./man/ls?lang=destyle language selection — the site documentsenas the default and fallback but does not spell out the query parameter in the excerpt; use the language selector on the page if you need a translation.
Practical implications
- Bookmark the canonical form. If you cite a page, include the package and section (
/man/core/ls/1/ls-style precision) so the link does not depend on repository or section ordering. - Ambiguous names need disambiguation. When two packages ship a page with the same name, the bare
/man/<page>URL gives you whichever repository is checked first. Add the package segment to be sure. - Formats are a suffix choice, not a separate site.
txtandrawreturn the same page content in plain form, which is handy for piping into a terminal or a diff. - Redirects are normal. A 302 on load is the site resolving an alias or a partial URL, not an error.
Finding pages without constructing URLs
The site offers three other routes, all documented on its own index page: a direct search form (in the header and sidebar of every page), a keyword search over page names and descriptions, and a listing form that filters and sorts all pages. There is also a DuckDuckGo bang, !archman, that sends a search straight to Arch manual pages. For one-off lookups the search box is faster than guessing the URL; for repeatable links the addressing scheme is the reliable option.