我在名为www.example.com.br
的域名下有一个网站。我的服务器设置为使用 Cookie会话跟踪模式。
getServletContext().getSessionCookieConfig().setDomain(".example.com.br");
getServletContext().getSessionCookieConfig().setPath("/");
但是现在我在www.example.com上介绍了该网站的英文版,因为对于Google和SEO技术,最好有不同的域而不是子域。
我在Stack Overflow中发现了很多关于此问题的问题,我知道出于很多安全原因这是不可能的。
但是,如果网址为.example.com.br
,如果网址为.com.br
,那么就不会告诉Tomcat使用Cookie域.example.com
和.com
?我不需要共享会话信息...即:如果用户更改域名,则可能需要再次登录。我并不担心。问题是根本没有存储.com
版本的信息,因为cookie设置为.com.br
版本。
是否有任何解决方法?
答案 0 :(得分:2)
用户的浏览器决定是否发送带有请求的cookie。 Web服务器(Tomcat,在您的情况下)在该决定中没有任何发言权。您要求明确禁止的内容。例如,RFC2109说:
用户代理应尽一切努力阻止共享 不同域中主机之间的会话信息。
我可以提出的最佳建议是让您的会话管理(登录,注销,...)在单个域中运行,无论用户最初访问的是什么。