/django-cms-redirects

A django app that lets you store simple redirects in a database and handles the redirecting for you. Integrated with Django CMS to allow you to link directly to a page object. Based off django.contrib.redirects

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

django-cms-redirects

A django app that lets you store simple redirects in a database and handles the redirecting for you. Integrated with Django CMS to allow you to link directly to a page object. Based off django.contrib.redirects.

Dependancies

  • django
  • django-cms

Getting Started

To get started simply install using pip:

pip install django-cms-redirects

Add cms_redirects to your installed apps and syncdb.

Your installed apps should look something like this:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.admin',
    'cms',
    'cms_redirects',
)

Finally, add 'cms_redirects.middleware.RedirectFallbackMiddleware' to your MIDDLEWARE_CLASSES setting.

Usage

All usage is done through the admin.

Providing a redirect from value for the source and either a redirect to or a page for the destination will result in a 301 redirect

Providing a redirect from value for the source and NO destination will result in a 410

Soft (Javascript-based) redirects can be enabled, as well as configured for how the redirect interacts with browser history, what message to display, and the timeout to be used. The template rendered is at cms_redirects/soft_redirects.html and has a base that you can override the soft_redirect_body for customization.

A new flag, enabled, which defaults to True, is available to enable/disable redirects without deleting them.