0

ミドルウェアを使用して、特定のページを強制的に HTTPS 経由で提供しています。

class SSLRedirect:

  def __init__(self):
    self.enabled = getattr(settings, 'SSL_ENABLED')

  def process_view(self, request, view_func, view_args, view_kwargs):

    if SSL in view_kwargs:
      secure = view_kwargs[SSL]
      del view_kwargs[SSL]
    else:
      secure = False

    if not self.enabled:
      logger.debug('SSL Disabled')
      return
...

問題は、スイッチを入れsettings.pyても効果がないように見えることです。設定していない URL を読み込むと、期待どおりログSSLにメッセージが表示されます。SSL Disabledただし、SSLが設定されてSSL_ENABLEDいるが にある URL をロードFalseするsettings.pyと、ページは引き続き HTTPS 経由でロードしようとし (そして でこれを実行しているため失敗します./mange.py runserver)、ログ メッセージが表示されません。このアプローチが機能しないのはなぜですか?

4

1 に答える 1

-1

これは、コードのバグではないことが判明しました。

私がリダイレクトしたかった場合、私は戻っていました:

return HttpResponsePermanentRedirect(newurl)

私のブラウザはこれをキャッシュしていたので、スイッチをオフにしてもリダイレクトが発生していました。ブラウザのキャッシュをクリアすると、これが修正されました。

于 2012-11-26T12:46:53.363 に答える