सुनिश्चित नहीं हैं कि @ CraigKerstiens यदि का जवाब यह है कि request.is_secure()
हमेशा False
लौटाता है यदि Heroku के रिवर्स प्रॉक्सी और नहीं के पीछे "निर्धारित" ध्यान देता है। अगर मुझे सही याद है, तो यह एक HTTP रीडायरेक्ट लूप का कारण बन जाएगा।
आप gunicorn साथ Django चला रहे हैं, एक और तरीका है करने के लिए इसे अपने Procfile
web: python manage.py run_gunicorn -b 0.0.0.0:$PORT -c config/gunicorn.conf
में इस तरह से कुछ के साथ gunicorn करने के config निम्नलिखित
secure_scheme_headers = {
'X-FORWARDED-PROTO': 'https'
}
रन जोड़ने के लिए gunicorn की स्थापना करके है secure-scheme-header
, request.is_secure()
https अनुरोधों पर True
ठीक से वापस करेगा। Gunicorn Config देखें।
अब @ क्रेगकेर्स्टियंस का मिडलवेयर आपके ऐप में request.is_secure()
पर किसी भी कॉल सहित ठीक से काम करेगा।
नोट: Django भी एक ही कॉन्फ़िगरेशन सेटिंग SECURE_PROXY_SSL_HEADER
पर कॉल करता है, लेकिन dev संस्करण में है।
स्रोत
2012-02-09 03:10:34
उत्तर अब एक [github पर ऐप] है (https://github.com/rdegges/django-sslify) –
github डालने के लिए उपरोक्त ... धन्यवाद! बस मैं आज क्या देख रहा था। –
एक साइड नोट के रूप में, यदि आपके पास DEBUG सही पर सेट है तो यह काम नहीं करता है। एक घंटे बिताए कि एक बाहर, तो उम्मीद है कि यह किसी को कुछ समय बचाता है। – Femi