Comment obtenir le nom de domaine de mon site actuel à partir d'un modèle Django ? J'ai essayé de regarder dans la balise et les filtres mais rien n'y fait.
Réponses
Trop de publicités?Comme indiqué dans la réponse de @furins, il peut y avoir des problèmes avec les serveurs proxy. J'ai moi-même constaté ce problème en utilisant Apache et uWSGI. request.get_host
o request.build_absolute_uri
renverrait l'hôte du proxy (127.0.0.1:9191 ).
Cependant, quelqu'un a posté un guide utile pour résoudre ce problème :
https://ubuntu.com/blog/django-behind-a-proxy-fixing-absolute-urls
Bien que cette réponse soit relativement ancienne, elle est toujours pertinente pour django 3.2 et python 3.9.
Au cas où la réponse disparaîtrait à l'avenir, voici l'essentiel de la réponse :
paramètres.py
# Setup support for proxy headers
USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
apache.conf
<VirtualHost *:443>
...
RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
ProxyPass / http://10.0.0.3/
ProxyPassReverse / http://10.0.0.3/
...
</VirtualHost>
Avec ces paramètres request.get_host
y request.build_absolute_uri
font référence à l'hôte demandé par le client et non à l'hôte du proxy.
- Réponses précédentes
- Plus de réponses