我正在使用中间件来强制通过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
中的切换似乎没有效果。如果我加载了一个我没有设置SSL
的网址,我会按预期在我的日志中收到SSL Disabled
消息。但是,如果我加载了SSL
设置了SSL_ENABLED
的网址,但False
中的settings.py
为./mange.py runserver
,则网页仍然会尝试通过HTTPS加载(并失败,因为我'我在{{1}})上这样做,我没有得到任何日志消息。为什么这种方法不起作用?
答案 0 :(得分:-1)
事实证明这不是代码的错误。
如果我确实想要重定向,我就回来了:
return HttpResponsePermanentRedirect(newurl)
我的浏览器缓存了这个,所以即使关闭开关也会发生重定向。清除我的浏览器缓存修复此问题。