为什么“www.example.com”与“example.com”不一样?

时间:2011-11-10 08:34:17

标签: php web-applications

我有一个网站。如果我使用此格式的域http://example.com登录,然后将我的地址更改为http://www.example.com,我发现我的帐户未登录。如果我将地址更改为http://example.com,我会找到我的帐户已登录。

我联系了我的主人,他们告诉我这是一个编程问题。

如何解决此问题,以便两个地址代表相同的访问/会话/ Cookie?

我正在使用PHP& MySQL的

3 个答案:

答案 0 :(得分:9)

就浏览器而言,

www.example.comexample.com是两个不同的域,显然,即使它们都指向同一个站点。如果您将其他域停放在那里,例如example.net

,也会发生同样的情况

为了解决这个问题,通过.htaccess重写URL是很常见的。确定您喜欢使用哪个域名,并在.htaccess中添加类似的内容:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301]

(第一个删除,第二个添加www)

答案 1 :(得分:6)

  

我如何解决这个问题,因此两个地址代表相同   访问/会话/饼干?

您必须像这样设置Cookie的域路径,以使其在所有子域上都可用:(www是子域名):

.domain.com

答案 2 :(得分:-1)

不一样.. 通常只需将example.com写入浏览器即可访问www.example.com,但您的浏览器会将www添加到您的网址中。 基本上它不一样