如果您在具有不同会话的非www和www域名上启用了SSL/TLS,Django会话cookie将在IE上失败

如果您在具有不同会话的非www和www域名上启用了SSL/TLS,Django会话cookie将在IE上失败,django,.htaccess,session,cookies,Django,.htaccess,Session,Cookies,我的网站在Chrome/Firefox/Opera上运行得非常好 但在IE上,它并不总是有效。 情况如何: 我有一个只能通过https访问的网站 您可以访问或查看同一网站 但是,根据您是否带有前缀,将在Django应用程序中创建另一个会话 这在除IE之外的所有浏览器中都能正常工作 为什么??所有浏览器都会检测是否需要发送不带前缀或带前缀的cookie,IE只需发送第一个已创建的cookie即可 我一直在与各种apache重写规则等斗争,但它们只会妨碍我的RESTAPI(“方法不允许”用于POS

我的网站在Chrome/Firefox/Opera上运行得非常好

但在IE上,它并不总是有效。

情况如何:

  • 我有一个只能通过https访问的网站
  • 您可以访问或查看同一网站
  • 但是,根据您是否带有前缀,将在Django应用程序中创建另一个会话
  • 这在除IE之外的所有浏览器中都能正常工作
  • 为什么??所有浏览器都会检测是否需要发送不带前缀或带前缀的cookie,IE只需发送第一个已创建的cookie即可
  • 我一直在与各种apache重写规则等斗争,但它们只会妨碍我的RESTAPI(“方法不允许”用于POST请求)
  • 只要用户只使用两个前缀中的一个,就没有问题,但用户总是做一些你不期望的事情

我该怎么解决这个问题呢?

听起来可能是个愚蠢的建议,但既然你的应用程序在Chrome、Firefox和Opera中运行正常,那就意味着IE做得不对。它能在边缘工作吗?如果是这样,那么轻轻地告诉用户,当他们使用IE访问您的网站时,只支持这些浏览器。尽管我构建了多个跨浏览器应用程序,但IE的优先级还不到我的1%。感谢您的建议,但IE 11(Edge)也有同样的问题:(您在两台主机上为站点提供服务,而不是将所有流量重定向到其中一台主机,这是有原因的吗?这样做可以解决您的问题,还可以确保您的站点有一台规范主机。http站点都重定向到,但我无法重定向到。我尝试了所有方法,但每次都出现故障(例如,发布数据时“找不到方法”,以及其他无法解决的问题)…请注意,我也有app.example.com。我最终将所有trafic重定向到www.example.com。仍使用旧cookie和IE或Edge的用户被要求清除所有浏览器cookie。从那时起,它工作正常:)听起来可能是一个愚蠢的建议,但既然你的应用程序在Chrome、Firefox和Opera中正常运行,那就意味着IE做得不对。它在Edge上运行吗?如果是这样,那么轻轻地告诉用户,当他们使用IE访问你的站点时,只支持这些浏览器。尽管我构建了多个跨浏览器应用程序,但IE的优先级还不到我的1%nks支持该建议,但IE 11(Edge)也有同样的问题:(您在两台主机上为站点提供服务,而不是将所有流量重定向到其中一台主机,这是有原因的吗?这样做可以解决您的问题,还可以确保您的站点有一台规范主机。http站点都重定向到,但我无法重定向到。我尝试了所有方法,但每次都出现故障(例如,发布数据时“找不到方法”,以及其他无法解决的问题)…请注意,我也有app.example.com。我最终将所有trafic重定向到www.example.com。仍使用旧cookie和IE或Edge的用户被要求清除所有浏览器cookie。从那时起,它工作正常:)