Static redirects for Django
Project description
Django Static Redirects
Define redirects in your repository as either CSV of JSON files, and have Django performantly serve them.
Redirect matching is designed to be as fast as possible, and does not use the database.
Installation
pip install django-static-redirects
Then, add static_redirects
to INSTALLED_APPS
.
The redirect is done as a middleware. Add static_redirects.StaticRedirectsMiddleware
wherever makes sense for you in MIDDLEWARE
- ideally below any middleware which modify the response (eg GzipMiddleware
) but above anything especially intensive, so the redirects are applied before them.
Usage
To add files containing redirects, set them in STATIC_REDIRECTS
:
STATIC_REDIRECTS = [
BASE_DIR / "static-redirect.csv",
BASE_DIR / "static-redirect.json",
]
Redirect files are read in-order, with latter redirects taking precedence.
Redirects can either be just paths, in which case they match all hostnames, or include a hostname. Schemes are not included as part of the match. If a request contains a querystring, it is ignored, unless a match containing the querystring is found.
CSV files
CSV files must contain 2 or 3 columns, without a header. The first column is the source path, second is the destination URL, and the (optional) third notes whether the redirect is permanent.
/source,/destination,true
/source2,/destination2
https://example.com/source3,/destination3
JSON files
JSON files must contain a list of objects:
[
{
"source": "/source",
"destination": "/destination",
"is_permanent": true
},
{
"source": "/source2",
"destination": "/destination2",
},
{
"source": "/source3",
"destination": "/destination3",
"hostname": "example.com"
},
{
"source": "https://example.com/source4",
"destination": "/destination4",
}
]
Much like CSV, is_permanent
is optional, defaulting to false
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_static_redirects-1.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f6b234fc62792d4bd02f6acfe2aa37d979910183016e645191ffc3dabb4d4a7 |
|
MD5 | 39e04cb0eae08bb0436b5e9c86098380 |
|
BLAKE2b-256 | bf2ad0e02d4e1467c9b904b874c273a2b031f4b634a514dec00e2b1a4c4c1caf |
Hashes for django_static_redirects-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2dbb259aedc1301426c15510e551385ebad6fc1c4b5250155c5e242150a38c6f |
|
MD5 | f261db585b1b4269cd5cffa69aa85244 |
|
BLAKE2b-256 | 13c95e64bc82b58078cc9e0944428a4d4802d2097289cfff93a7fefbbb2e334a |