私が使っていurl_for
たユーザがログアウトしたときにリダイレクトURLを生成します:
return redirect(url_for('.index', _external=True))
しかし、ページをhttps接続に変更すると、url_for
依然としてhttpが表示されます。
URLの先頭にhttpsurl_for
を追加することを明示的に要求します。
変更方法を教えてもらえますか?私は運が悪く、Flaskのドキュメントを調べました。
Flask 0.10では、ラッピングよりもはるかに優れたソリューションを利用できますurl_for
。https://github.com/mitsuhiko/flask/commit/b5069d07a24a3c3a54fb056aa6f4076a0e7088c7を見ると、_scheme
パラメーターが追加されています。つまり、次のことを実行できます。
url_for('secure_thingy',
_external=True,
_scheme='https',
viewarg1=1, ...)
_scheme
URLスキームを設定し、https://..
ではなくのようなURLを生成しますhttp://
。あなたはインクルードする必要がありますのでただし、デフォルトでフラスコは、(ホストまたはスキームなし)のパスを生成_external=True
から行くこと/secure_thingy
にhttps://example.com/secure_thingy
。
ただし、代わりにWebサイトをHTTPS専用にすることを検討してください。いくつかの「安全な」ルートにのみHTTPSを部分的に適用しようとしているようですが、安全なページにリンクしているページが暗号化されていない場合、https-URLが変更されないことは保証できません。これは混合コンテンツに似ています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加