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

use*_*509 6 php web-applications

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

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

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

我正在使用PHP和MySQL

min*_*gos 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]
Run Code Online (Sandbox Code Playgroud)

要么

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

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


ale*_*exn 6

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

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

.domain.com