Skip to main content

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

Project description

https://travis-ci.org/aldryn/aldryn-sites.svg?branch=develop https://img.shields.io/coveralls/aldryn/aldryn-sites.svg

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

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

aldryn-sites-0.5.8.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

aldryn_sites-0.5.8-py2-none-any.whl (10.5 kB view details)

Uploaded Python 2

File details

Details for the file aldryn-sites-0.5.8.tar.gz.

File metadata

File hashes

Hashes for aldryn-sites-0.5.8.tar.gz
Algorithm Hash digest
SHA256 a8f132729c855ed1ea986a8f7c8944224fc0891c505035df149ce7c855571472
MD5 8b3ada2a7b05f0768b906509242766e1
BLAKE2b-256 de0bed5713278b16e3e7adf61f32ae6d879a1f1971e9c9689bb5d000b9f74f53

See more details on using hashes here.

File details

Details for the file aldryn_sites-0.5.8-py2-none-any.whl.

File metadata

File hashes

Hashes for aldryn_sites-0.5.8-py2-none-any.whl
Algorithm Hash digest
SHA256 bcbb00518f5b832e09c1596ca5fdd7db6ad16d51f35234ec7018e5f7c1a0cc79
MD5 1a410b81df2822c3f1dff9c5b6c28262
BLAKE2b-256 a4e614f4a565e9d8fefea5cfbe1f287d2bf47a532d8b6d9f0fa93c0d30919620

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