A custom 404 handler that uses fixed or regex rules to redirect from old to new urls.
- Fixed URL -> URL rules
- Regex rules
- Usage logging
- Removal of unused url migrations
- Add custom 404 handler to your main urls.py:
handler404 = 'url_migration.views.page_not_found'
- Add url_migration to your INSTALLED_APPS.
- Run migrations (manage.py migrate)
- Check your Django admin for the url_migration models:
- Url mappings: fixed url -> url rules
- Url regexp mappings: regex rules that will generate url mapping for every regex match.
The remove_expired_redirects management command may be used to remove expired url mappings - if the mapping isn't used for given expiry time it will be removed (so you can see which old urls are still used).
Every mapping hit is being logged to LastUsageLog model.
You can also check url_migration_demo project in this repository.