`redirectFrom` in a page's frontmatter becomes route rules, one per prefix the
page is served under. This panel reads those rules back **out of the running
server** rather than recomputing them: a rule that was generated and a rule that
shipped are different claims, and only the second one redirects anybody.

::devtools-panel{tab="redirects"}
::

## Written by

Reading the rules back means reading every module's, not just the layer's —
`@nuxtjs/sitemap` adds `/sitemap.xml` on any site with more than one sitemap. So
each row says who wrote it:

| Badge            | Meaning                                                    |
| :--------------- | :---------------------------------------------------------- |
| `redirectFrom`   | Generated by duxt from a page's frontmatter                  |
| `another module` | Somebody else's route rule, shipped by the same server       |

Nothing in a route rule records its author, so the layer records the paths it
generated beside them, and the panel marks the rest.

## Notes

**One rule per prefix.** An old URL was bookmarked under exactly one of the
repository segment, the version segment and the locale segment — and nothing says
which — so every combination redirects.

A page redirecting to itself is skipped rather than shipped: that is a loop, not a
redirect.

Moving a page is a guide of its own: [Move a page](/guides/move-a-page).