Django 为什么我的SSL中间件行为不端?
我正在使用中间件强制通过HTTPS提供某些页面:Django 为什么我的SSL中间件行为不端?,django,django-middleware,Django,Django Middleware,我正在使用中间件强制通过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]
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
的url,我会按照预期在日志中获得SSL Disabled
消息。但是,如果我加载的url设置了SSL
,但settings.py
中的SSL\u ENABLED
为False
,则页面仍尝试通过HTTPS加载(并且失败,因为我在/mange.py runserver
上执行此操作),并且我没有收到任何日志消息。为什么这种方法不起作用?这不是代码的错误
在我确实想重定向的情况下,我返回:
return HttpResponsePermanentRedirect(newurl)
我的浏览器缓存了这个,所以即使在开关关闭的情况下也会发生重定向。清除浏览器缓存修复了此问题