Change a slug and create redirect in Whitehall
Change a slug and create a redirect in Whitehall
In Whitehall, we have Rake Tasks to change slugs and create redirects for
various entities: Person
, Role
, Document
, PolicyGroup
, WorldLocation
,
Organisation
, WorldwideOrganisation
and StatisticsAnnoucement
.
Rake Tasks
These Rake Tasks also reindex the entity with its new slug and republish it to Publishing API, which automatically handles the redirect. They all take the old slug and the new slug as arguments.
Change slug and create redirect for a
Person
:- in integration
- in staging
- in ⚠️ production ⚠️
Change slug and create redirect for a
Role
:- in integration
- in staging
- in ⚠️ production ⚠️
Change slug and create redirect for a
Document
:
To update a documents slug, visit the following URL, replacing <edition_id>
with the ID of any of a documents editions:
https://whitehall-admin.publishing.service.gov.uk/government/admin/editions/<edition_id>/edit_slug
Change slug and create redirect for a
PolicyGroup
:- in integration
- in staging
- in ⚠️ production ⚠️
Change slug and create redirect for a
WorldLocation
:- in integration
- in staging
- in ⚠️ production ⚠️
Change slug and create redirect for a
Organisation
:- in integration
- in staging
- in ⚠️ production ⚠️
Change slug and create redirect for a
WorldwideOrganisation
:- in integration
- in staging
- in ⚠️ production ⚠️
Change slug and create redirect for a
StatisticsAnnoucement
:- in integration
- in staging
- in ⚠️ production ⚠️
Issues
If you run a task and find the redirect has worked but the new location returns a 404, it’s likely because the republish command is languishing in the low-priority queue (check queue volumes in Grafana). Whitehall appears to put the redirect in the low-priority queue, so there can be a delay between the redirect being applied and the content being republished.
This should resolve itself over time, but if you need to process the content
change more quickly, run represent_downstream:high_priority:content_id[CONTENT_ID]
to put it in the high priority queue:
- in integration
- in staging
- in ⚠️ production ⚠️