0

Djangoアプリで一貫性のない動作をしています。

wwwなしでログインし、wwwを前に付けると、認証されません。また、それらのすべての組み合わせも認証されません。(www.mydomain.comとmydomain.comは、認証に関して異なるサイトが好きです)

認証コードが重要な場合は、ここのチュートリアルに基づいてミドルウェアを作成しました:http: //onecreativeblog.com/post/59051248/django-login-required-middleware

これまでのところ、を使用してwwwの追加を強制する問題を修正しましたPREPEND_WWW = Trueが、それでも問題を理解したいと思います;)

誰かが何が起こっているのか考えていますか?前もって感謝します!

4

3 に答える 3

4

Zaha Zorgのコメント:DjangoのCookieは、デフォルトでは、先頭に追加されたwwwドメインとwww以外のドメインの両方で機能しません。

ただし、ここでのより深刻な問題は、サイトのwwwドメインとwww以外のドメインの両方が同一のコンテンツを提供することを許可していることです。2つの間でトラフィックを分割することの明らかなSEOの結果に加えて、あなたはこれらのような問題に遭遇します。これを処理する適切な方法は、すべてのトラフィックを一方から他方にリダイレクトすることです(どちらか好きな方)。PREPEND_WWWあなたが見つけた設定はこれに完璧に機能します。逆に(すべてのトラフィックをwww以外に強制する)、ApacheやNginxなどのサーバー構成レベルで再書き込みを行うことをお勧めします。

于 2011-06-14T16:49:49.250 に答える
1

https://docs.djangoproject.com/en/dev/ref/settings/?from=olddocs#session-cookie-domainを確認する必要があります

SESSION_COOKIE_DOMAIN デフォルト:なし

セッションCookieに使用するドメイン。クロスドメインCookieの場合は「.lawrence.com」などの文字列に設定するか、標準ドメインCookieの場合は「なし」を使用します。セッションの使用方法を参照してください。

于 2011-06-14T16:17:28.210 に答える
1

Cookieがサーバーのホスト名に依存している可能性がありますか?これは、両方のドメイン名が異なると見なされる理由を説明している可能性があります。

于 2011-06-14T16:20:20.603 に答える