代码之家  ›  专栏  ›  技术社区  ›  jo

http://example.com和http://www.example.com之间的区别?

  •  2
  • jo  · 技术社区  · 15 年前

    对于会话和cookie,example.com和www.example.com之间有区别吗?

    我们的Web应用程序有一个非常奇怪的问题

    privat网站是:private.example.com 公共网站是:example.com

    出于某些我无法控制的原因,www.example.com被重定向到example.com。 我想这是服务器上的设置。

    问题是,当我登录到管理控制台,打开一个新的选项卡并请求公共站点时,登录会话将丢失。

    这只发生在IE 7中

    经过一些挖掘,我找到了这个网站:

    http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx

    见Q3

    当我访问公共站点时,是否可以删除admin(private.example.com)中设置的会话?因为服务器正在将我重定向到example.com?

    我认为在设置Cookie(Java)时,我们没有指定域部分。

    如我所说,这只发生在xp sp3和ie7上

    任何能帮助我,或纠正我对IE的理解的人。

    4 回复  |  直到 15 年前
        1
  •  1
  •   Community CDub    8 年前

    是的,cookie是特定于域甚至子域的。这就是问题所在。为了一致性起见,我会尝试找到一种方法将其保持在同一子域中。

    你说从www.yourdomain.com到yourdomain.com的重定向是你无法控制的。这是因为您没有访问服务器的权限吗?如果是这样,你可以从另一个角度攻击它。您可以设置一个全局301重定向规则,以便访问www.yourdomain.com的每个用户都能立即重定向到yourdomain.com(类似stackoverflow.com),而不是阻止重定向。这样,网站的每一页都保持一致。

    实现这一点有许多不同的方法。但如果你碰巧使用.NET,请看我对这个问题的回答: Setting up HTTP Redirect for SEO in IIS7

    这是一个纯粹的.NET代码解决方案,它不需要额外的模块,因此即使您没有访问服务器的权限,它也可以工作。事实上,这个答案是针对相反的场景(非www到www),但它可以很容易地针对这个任务进行修改。

        2
  •  1
  •   Brisbe    15 年前

    创建cookie时,总是在子域而不是域本身上设置cookie。创建时,您必须特别设置cookie以指向example.com。我们在admin.example.com和dealer.example.com登录cookie上也有同样的问题。

        3
  •  0
  •   Greg Buehler    15 年前

    当涉及到cookie时,域和子域彼此独立。我将检查您的DNS记录以查看A记录实际指向的位置,然后查看您的Web服务器以了解如何解释子域。有时服务器被配置为将子域视为URL重定向,特别是在大型托管解决方案中。

    您可能还想检查是否将ASP属性的“响应”cookie(“UID”)。

        4
  •  0
  •   joeforker    15 年前

    如果将cookie设置为example.com,则应将其发送到www.example.com和private.example.com,但如果将cookie设置为private.example.com,则不应将其发送到example.com。有些网站将所有cookie设置为www.example.com,并提供static.example.com或其他域的静态内容,因此cookie不会随静态内容请求一起不必要地发送。

    另请参见 http://developer.yahoo.com/performance/rules.html#cookie_free