26 lines
949 B
Python
26 lines
949 B
Python
from __future__ import annotations
|
|
|
|
from django.http import HttpRequest, HttpResponsePermanentRedirect
|
|
|
|
|
|
class RedirectApexToWwwMiddleware:
|
|
"""Redirect `mandelblog.com` to `www.mandelblog.com` for production.
|
|
|
|
We keep this project-scoped and host-specific so staging hostnames and other
|
|
Mandel environments are unaffected.
|
|
"""
|
|
|
|
def __init__(self, get_response):
|
|
self.get_response = get_response
|
|
|
|
def __call__(self, request: HttpRequest):
|
|
# Use the raw Host header so proxy-specific X-Forwarded-Host rewrites
|
|
# can't prevent the apex redirect.
|
|
host = (request.META.get("HTTP_HOST") or "").split(":")[0].lower()
|
|
if host == "mandelblog.com":
|
|
destination = request.build_absolute_uri().replace(
|
|
"://mandelblog.com", "://www.mandelblog.com", 1
|
|
)
|
|
return HttpResponsePermanentRedirect(destination)
|
|
return self.get_response(request)
|