Développement Web

Redirection de www vers non-www (ou l'inverse) sur Django & Heroku

23 June 2025
~2 min de lecture
Redirection de www vers non-www (ou l'inverse) sur Django & Heroku

Redirection de www vers non-www (ou l'inverse) sur Django & Heroku

Pour garantir une expérience utilisateur cohérente et améliorer le référencement, il est recommandé de choisir une version principale de votre domaine (avec ou sans www) et de rediriger automatiquement l'autre vers celle-ci.

Pourquoi faire cette redirection ?

  • Éviter le contenu dupliqué pour Google
  • Améliorer la cohérence de marque
  • Centraliser les statistiques d'audience
  • Optimiser le SEO

Configuration DNS chez Gandi

Voici la configuration recommandée pour votre domaine :

  • www.bolibana.net : CNAME vers cubed-parasaurolophus-3z5g995zs6sbrb042nmfip48.herokudns.com
  • bolibana.net : A record vers 76.76.21.21 (IP Heroku pour l'apex)

Ajouter les domaines sur Heroku

Exécutez ces commandes dans votre terminal :

heroku domains:add bolibana.net
heroku domains:add www.bolibana.net

Redirection automatique dans Django

Pour forcer la redirection de www vers non-www (ou l'inverse), ajoutez ce middleware dans votre projet :

# middleware.py
from django.http import HttpResponsePermanentRedirect

class WwwRedirectMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        host = request.get_host()
        if host.startswith('www.'):
            return HttpResponsePermanentRedirect(
                request.build_absolute_uri().replace('://www.', '://', 1)
            )
        return self.get_response(request)

Ajoutez-le dans settings.py juste après les middlewares de sécurité :

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    # ...
    'votre_app.middleware.WwwRedirectMiddleware',
    # ...
]

Configuration dans ALLOWED_HOSTS

Assurez-vous d'avoir les deux versions dans vos paramètres Django :

ALLOWED_HOSTS = [
    'localhost',
    '127.0.0.1',
    '.herokuapp.com',
    'bolibana.net',
    'www.bolibana.net',
]

Vérification de la propagation DNS

Après avoir modifié les enregistrements DNS, utilisez cette commande pour vérifier que tout fonctionne :

heroku domains:wait bolibana.net

Avantages de cette approche

  • SEO optimisé : Évite le contenu dupliqué
  • UX cohérente : Les utilisateurs arrivent toujours au bon endroit
  • Maintenance simplifiée : Une seule version à gérer
  • Statistiques unifiées : Toutes les visites sont centralisées

Conclusion

En combinant une bonne configuration DNS, l'ajout des domaines sur Heroku et un middleware Django, vous garantissez que vos visiteurs arrivent toujours sur la bonne version de votre site. Cette approche est bénéfique pour l'image de marque et le référencement naturel.

Note : La propagation DNS peut prendre jusqu'à 24 heures, mais elle est généralement effective en quelques minutes.

Dernière modification : 15 December 2025 à 12h45

Articles similaires