This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

An extension for django.contrib.sites, featuring domain redirects and automatic population of the django.contrib.sites.Site table based on settings.

Project Description

Extensions to django.contrib.sites.

Features

  • Domain redirects: handles smart redirecting to a main domain from alias domains. Taking http/https into consideration.
  • Site auto-population: automatically populates the Domain name in django.contrib.sites.Site.domain based on the ALDRYN_SITES_DOMAINS setting.

Installation

  • add aldryn_sites to INSTALLED_APPS.
  • add aldryn_sites.middleware.SiteMiddleware to MIDDLEWARE_CLASSES (place it before djangosecure.middleware.SecurityMiddleware if redirects should be smart about alias domains possibly not having a valid certificate of their own. The middleware will pick up on SECURE_SSL_REDIRECT from django-secure.)

configure ALDRYN_SITES_DOMAINS:

ALDRYN_SITES_DOMAINS = {
    1: {  # matches SITE_ID
        'domain': 'www.example.com',  # main domain that all domains in redirects will redirect to.
                                      # Auto populates ``django.contrib.sites.Site.domain``
        'aliases': [                  # these domains will be accessible like the main domain (no redirect).
            'an.other.domain.com',
            r'^[a-z0-9-]+\.anysub\.com$',  # regexes are supported
        ],
        'redirects': [                # these domains will be redirected to the main domain.
            'example.com',            # add ``'*'`` to redirect all non-main domains to the main one.
            'example.ch',
            'www.example.ch',
            r'^[a-z0-9-]+\.my-redirect-domain\.com$',  # regexes are supported
            r'.*',  # matches any domain (Makes the above rules useless. It's just an example)
        ],
    }
}

When using regexes:

  • exact matches win over pattern matches
  • pattern redirect matches win over pattern alias matches

Further Settings

set ALDRYN_SITES_SET_DOMAIN_NAME to False if you don’t want django.contrib.sites.Site.domain to be auto-populated (default: True).

TODOS

  • validate settings
  • test settings validators
  • log warning if there are Sites in the database that are not in the settings
  • pretty display of how redirects will work (in admin and as a simple util)
  • regex support for aliases
  • form to test redirect logic
  • pre-compile and cache regexes
Release History

Release History

This version
History Node

0.5.8

History Node

0.5.7

History Node

0.5.6

History Node

0.5.5

History Node

0.5.4

History Node

0.5.3

History Node

0.5.2

History Node

0.5.1

History Node

0.5

History Node

0.4

History Node

0.3

History Node

0.2

Download Files

Download Files

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

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
aldryn_sites-0.5.8-py2-none-any.whl (10.5 kB) Copy SHA256 Checksum SHA256 2.7 Wheel May 16, 2017
aldryn-sites-0.5.8.tar.gz (6.5 kB) Copy SHA256 Checksum SHA256 Source May 16, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting