Skip to main content

404 handler for Wagtail, with regexp support

Project description

PyPI - Python Vesion GitHub license GitHub issues

Managed 404 Pages with Redirects

Description

A Wagtail package which will give you ability to automatically log and create of redirects from within Wagtail admin panel.

Features

  • Automatic "404 Not Found" HTTP Error Detection Following the Non-Existent Page Opening
  • Support for Redirects to Wagtail Pages

How It Works

  • Regular Expression → Regular Expression [currently in development]
  • Regular Expression → URL
  • Regular Expression → Wagtail Page
  • URL → URL
  • URL → Wagtail Page

Repository inspired by / based on a fork of:

Both projects were similar (one Model class and fairly uncomplicated Middleware), so the easiest thing was simply to combine them, and work onwards from this base. Below, you can see the classes comparison of those two.

Django Regex Redirects Wagtail Managed 404 (Cjk404)
class Redirect(models.Model) class PageNotFoundEntry(models.Model)
old_path url
new_path redirect_to_url or redirect_to_page
regular_expression -
fallback_redirect -
nr_times_visited hits

Testing

Use either Django test runner (python manage.py test cjk404) or pytest.

Dependencies

This package is used for the admin panel itself.

Screenshots

"All Redirects" in the Backend

"All Redirects" in the Backend"

"Edit Redirect" in the Backend

"Edit Redirect" in the Backend"

Usage

Fresh install

  1. Get the app from PyPI: pip install wagtail-cjk404

  2. Add 'cjk404' to the INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'wagtail_modeladmin', # required dependency
    'cjk404'
    ...
]
  1. Add the supplied middleware. You may also want to disable Wagtail's default RedirectMiddleware:
MIDDLEWARE = [
    'cjk404.middleware.PageNotFoundRedirectMiddleware',
    # "wagtail.contrib.redirects.middleware.RedirectMiddleware",
]
  1. Run the migrations:
python manage.py migrate
  1. Visit the Wagtail admin area. You should see any 404s recorded in the application, and you can add redirects to them. You can also add your own redirects, e.g. based on regexp.

Upgrade from the old (dj-apps-cjk404) version

  1. Remove folder apps/cjk404 with all contents
  2. Change 'apps.cjk404' to 'cjk404' in INSTALLED_APPS.
  3. Get the app from PyPI: ```pip install wagtail-cjk404``
  4. You're done!

Development

Utility scripts - testing

Assuming you have Django>=4.0 and Wagtail>=3.0 pip-installed in your virtual environment, you do not need to set up a new Django/Wagtail project to develop/test the app.

After you git clone the repository, use load_tests.py to call boot_django and then to execute the unit tests.

Authors

Github URL

Old URL:

https://github.com/cjkpl/dj-apps-cjk404

New URL:

https://github.com/cjkpl/wagtail-cjk404

Please migrate your local repositories to the new URL by executing:

$ git remote set-url origin https://github.com/cjkpl/wagtail-cjk404

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail_cjk404-24.5.1.tar.gz (677.4 kB view details)

Uploaded Source

Built Distribution

wagtail_cjk404-24.5.1-py2.py3-none-any.whl (17.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file wagtail_cjk404-24.5.1.tar.gz.

File metadata

  • Download URL: wagtail_cjk404-24.5.1.tar.gz
  • Upload date:
  • Size: 677.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.6

File hashes

Hashes for wagtail_cjk404-24.5.1.tar.gz
Algorithm Hash digest
SHA256 1883d4f760b1d7fd90a794eeca3cb595e7ec7249aa0d017fc57302422b373f81
MD5 a2f7460c2ad3ebbe6309c12e6c2ddf00
BLAKE2b-256 5310cc8cbefc7793b600eff911f0a7f296b479e5b20f2b21d2de9573cf7b02da

See more details on using hashes here.

File details

Details for the file wagtail_cjk404-24.5.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for wagtail_cjk404-24.5.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4c2ac924c960db0322e0bf83e25532b826b634bb665ef7d998b1ca95824d5207
MD5 5a0626e6370674e872ec56fec587627e
BLAKE2b-256 17da211def7dbf87d35fc29e0a6aa51e88ec2f074d357794d7036bea8238bf26

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page