0

私はsslをdjangoアプリに追加する過程にあり、リンクがhttpsからhttpにリダイレクトされるという問題が発生しています。

最終的には nginx がすべての http リクエストを https にリダイレクトするようにしますが、今のところ両方を許可しています。

したがって、 https://www.mysite.comにアクセスすれば問題ありません。ただし、「リンクについて」: href='/about' をクリックすると、http://www.mysite.com/aboutにリダイレクトされます。

About は超基本的な (静的) ページです。urls.py のエントリは次のとおりです。

(r'^about/$', 'search.views.about'),

ビュー関数は次のとおりです。

def about(request):
    return render_to_response('search/about.html')

Django はユーザーをhttps://www.mysite.com/about/に誘導すべきではありませんか? これは request.is_secure() メソッドと関係があると思います。私にとっては常にfalseを返します。true を返すには os.environ['HTTPS'] = "on" を設定する必要があることを読みました。どうすればこれを行うことができますか?他に何かする必要がありますか?すべてのリンクに https をハードコーディングする必要がありますか?

すべての助けをありがとう。

4

1 に答える 1

0

私が使用していたnginxコードがすべてを台無しにしていたことが判明しました。それ以外の:

if ($http_x_forwarded_port != 443) { rewrite ^ https://$http_host/; }

使用する:

if ($http_x_forwarded_port != 443) { rewrite ^(.*) https://$host$1 permanent; 

リダイレクトを行います。最初のものはホスト以外のすべてをドロップします。

于 2012-09-07T01:02:05.040 に答える