[Django] httpのアクセスをhttpsにリダイレクトさせる
Djangoで作ったウェブアプリに対して、
httpできたアクセス全てをhttpsに変える設定の仕方です。
httpsに対応させたらhttpのアクセスは出来ればして欲しく無いですよね。
本来はnginxなどのサーバーアプリケーションで対応させるのが一番良いのでしょうが、
Django単体でもhttpsにリダイレクトさせる方法があるのでご紹介
httpsにリダイレクトさせる
方法はすごく簡単
設定ファイルsettings.py
に以下の一文を書き加えるだけ。
SECURE_SSL_REDIRECT = True
この設定はデフォルトでは無効になっています。
この設定が有効になっているとhttpsでは無いアクセスが来た際、自動的にhttpsにリダイレクトしてくれるようになります。
この設定が有効になっているとローカルでアクセスした時にアクセスを拒否される場合があるので、デバッグモードの有効の可否、あるいは環境変数での設定の切り替えを行う事をオススメします。
デバッグモードで判別する場合の例
if DEBUT:
SECURE_SSL_REDIRECT = False
else:
SECURE_SSL_REDIRECT = True
環境変数を利用する場合は、
を参考にしてみてください。
まとめ
SECURE_SSL_REDIRECT
を有効(True
)にするとでhttpのアクセスをhttpsにリダイレクトさせることが出来る。