![我访问裸域名时已登录,但访问www子域名时已退出](https://linux22.com/image/1397965/%E6%88%91%E8%AE%BF%E9%97%AE%E8%A3%B8%E5%9F%9F%E5%90%8D%E6%97%B6%E5%B7%B2%E7%99%BB%E5%BD%95%EF%BC%8C%E4%BD%86%E8%AE%BF%E9%97%AEwww%E5%AD%90%E5%9F%9F%E5%90%8D%E6%97%B6%E5%B7%B2%E9%80%80%E5%87%BA.png)
如果我访问http://mysite.com我发现我已经登录了。但如果我访问http://www.mysite.com我发现我还没有登录。
我的 DNS 中有以下内容:
ALIAS mysite.com. mysite.herokuapp.com.
CNAME www.mysite.com. mysite.herokuapp.com.
NS mysite.com. dns1.pointhq.com.
NS mysite.com. dns2.pointhq.com.
NS mysite.com. dns3.pointhq.com.
NS mysite.com. dns4.pointhq.com.
NS mysite.com. dns5.pointhq.com.
我显然做错了什么。我的网站托管在 Heroku 上,他们不允许你在裸域上使用 IP 地址。DNS 由 pointhq 提供。
为什么会发生这种情况?我的 CNAME 应该指向我的 ALIAS 而不是 mysite.herokuapp.com 吗?可能是这样吗?我可以对其进行修改,但 TTL 相当高。
此外,由于我们即将开始使用 SSL,因此我认为我不想采用 301 重定向路线。
答案1
这不是与 DNS 相关的问题(因为您可以使用或不使用 www 访问该网站 - DNS 服务器在这方面所做的一切都是这样的)。
相反,问题在于 cookie 的工作方式。当您使用主域时,cookie 显然对子域无效。如何(以及您是否可以修复此问题)取决于您的软件(和您的浏览器)。重定向可能是最简单的方法,但我看到您不想这样做的评论。