我已经在Django上开发了自己的网站一段时间,今天我开始学习如何部署它。我将此添加到我的settings.py中:
SECURE_SSL_REDIRECT = True,
Run Code Online (Sandbox Code Playgroud)
这导致开发服务器停止正常工作,并显示以下错误消息:
[13/Jan/2018 16:56:49] code 400, message Bad request syntax ('\x16\x03\x01\x00À\x01\x00\x00¼\x03\x03ßà\x84¼+Jnßþn-ñ\x88ý©vAþK\x83¤²êT\x86\x0b.\x8em\x0b:â\x00\x00\x1cÚÚÀ+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x00')
[13/Jan/2018 16:56:49] code 400, message Bad HTTP/0.9 request type ('\x16\x03\x01\x00À\x01\x00\x00¼\x03\x03\x87')
[13/Jan/2018 16:56:49] You're accessing the development server over HTTPS, but it only supports HTTP.
[13/Jan/2018 16:56:49] You're accessing the development server over HTTPS, but it only supports HTTP.
[13/Jan/2018 16:56:49] code 400, message Bad request version ('JJÀ+À/À,À0̨̩À\x13À\x14\x00\x9c\x00\x9d\x00/\x005\x00')
[13/Jan/2018 16:56:49] You're accessing the development server over HTTPS, but it only supports HTTP.
Run Code Online (Sandbox Code Playgroud)
为什么我的服务器停止正常工作?
请注意,当我将设置更改回时SECURE_SSL_REDIRECT = False,问题并没有消失。
您通过配置将django站点配置为强制执行https- SECURE_SSL_REDIRECT = True对于生产设置来说这是个好主意。
如果将SECURE_SSL_REDIRECT设置设置为True,SecurityMiddleware将永久(HTTP 301)将所有HTTP连接重定向到HTTPS。
由于这个原因(以及其他原因),您通常具有单独的开发和生产设置。有些事情几乎总是不同的。
阅读此内容以了解如何处理它的一些方法:Django:如何管理开发和生产设置?
注意
如果您的浏览器从您的站点收到一次301-重新设置该设置可能没有直接效果,因为该浏览器缓存了目标URL,并且不会通过HTTP发送请求。在这种情况下,您需要清除或禁用浏览器缓存。
小智 6
该浏览器缓存http- >https时,它正在同来自先前请求的重定向SECURE_SSL_REDIRECT=True。
将其关闭服务器端不会影响缓存重定向。
您可以有选择地清除开发服务器的 url/ip(不是浏览器缓存中的所有内容),并通过以下方式进行操作:
http://127.0.0.1:8000- 它会给你一个 404http://127.0.0.1:8000一次| 归档时间: |
|
| 查看次数: |
2604 次 |
| 最近记录: |