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位于False中的 url settings.py,该页面仍会尝试通过 HTTPS 加载(并且失败,因为我正在执行此操作./mange.py runserver),并且我没有收到任何日志消息。为什么这种方法不起作用?

4

1 回答 1

-1

事实证明这不是代码的错误。

在我确实想要重定向的情况下,我正在返回:

return HttpResponsePermanentRedirect(newurl)

我的浏览器已经缓存了这个,所以即使关闭了开关,重定向也会发生。清除我的浏览器缓存解决了这个问题。

于 2012-11-26T12:46:53.363 回答