Esatto.Umbraco.Backoffice.Redirects
1.0.2
dotnet add package Esatto.Umbraco.Backoffice.Redirects --version 1.0.2
NuGet\Install-Package Esatto.Umbraco.Backoffice.Redirects -Version 1.0.2
<PackageReference Include="Esatto.Umbraco.Backoffice.Redirects" Version="1.0.2" />
<PackageVersion Include="Esatto.Umbraco.Backoffice.Redirects" Version="1.0.2" />
<PackageReference Include="Esatto.Umbraco.Backoffice.Redirects" />
paket add Esatto.Umbraco.Backoffice.Redirects --version 1.0.2
#r "nuget: Esatto.Umbraco.Backoffice.Redirects, 1.0.2"
#:package Esatto.Umbraco.Backoffice.Redirects@1.0.2
#addin nuget:?package=Esatto.Umbraco.Backoffice.Redirects&version=1.0.2
#tool nuget:?package=Esatto.Umbraco.Backoffice.Redirects&version=1.0.2
Esatto.Umbraco.Backoffice.Redirects
URL redirects admin for Umbraco 17 & 18. Editors manage dead-URL → new-URL rules from a Settings-section dashboard; the runtime serves 301 responses via an Umbraco IContentFinder.
- SQL-backed
Redirectstable — no Umbraco content nodes, no uSync churn - Exact, case-insensitive matching with query-string preservation
- "Draft" state — list a row without a target URL until you decide where it should go
- Search across both old and new URLs
- Idempotent migrations — safe on fresh DBs and on installs that previously used the legacy
esattoRedirectstable
How it works
Open Settings → Redirects, add an Old URL and (optionally) a New URL, and the runtime answers matching front-end requests with a 301.

Leave New URL empty to keep a draft until you decide the target; inline-edit or delete any row; search filters across both columns.
Install
dotnet add package Esatto.Umbraco.Backoffice.Redirects
Nothing to wire up. Installing the package is enough — it self-registers via
its composer (appends the content finder and runs the migration at startup). You
may optionally call builder.Services.AddBackofficeRedirects(); for explicitness;
it's idempotent.
Endpoint
The Management API is at:
GET /umbraco/management/api/v1/backoffice/redirects
POST /umbraco/management/api/v1/backoffice/redirects
PUT /umbraco/management/api/v1/backoffice/redirects/{id}
DELETE /umbraco/management/api/v1/backoffice/redirects/{id}
All endpoints require AuthorizationPolicies.SectionAccessSettings.
Database
- Table:
Redirects - Unique index:
IX_Redirects_oldPath - Migrations run automatically via Umbraco's
IComposerat app start - Migrations are idempotent — re-runs are safe
Migrating from the legacy esattoRedirects table
If your install previously used the in-tree Esatto.Web implementation, the first
run renames esattoRedirects → Redirects (and its indexes) via sp_rename.
This is metadata-only — no row data is touched. The rename runs only when the new
Redirects table does not yet exist and the legacy esattoRedirects table does.
Compatibility
| Umbraco | Status |
|---|---|
| 17.x | Verified |
| 18.x | Verified |
License
MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- MessagePack (>= 3.1.7)
- Microsoft.OpenApi (>= 2.7.5)
- Umbraco.Cms.Api.Management (>= 17.0.0)
- Umbraco.Cms.Core (>= 17.0.0)
- Umbraco.Cms.Infrastructure (>= 17.0.0)
- Umbraco.Cms.Web.Common (>= 17.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.