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

Php 为什么是;www.example.com“;与“不一样”;example.com“;?,php,web-applications,Php,Web Applications,我有一个网站。如果我以这种格式登录域,然后将地址更改为,我发现我的帐户未登录。如果我将地址更改为,我发现我的帐户已登录 我联系了我的主持人,他们告诉我这是一个编程问题 如何解决此问题,使两个地址代表相同的访问/会话/cookie 我正在使用PHP和MySQL 如何解决此问题,使两个地址代表相同的地址 访问/会话/cookies 您必须像这样设置cookie的域路径,以使其在所有子域上可用:(www是子域): 就浏览器而言,.domain.comwww.example.com和example.co

我有一个网站。如果我以这种格式登录域,然后将地址更改为,我发现我的帐户未登录。如果我将地址更改为,我发现我的帐户已登录

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

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

我正在使用PHP和MySQL

如何解决此问题,使两个地址代表相同的地址 访问/会话/cookies

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


就浏览器而言,
.domain.com
www.example.com
example.com
显然是两个不同的域,即使它们都指向同一个站点。如果您将不同的域停放在那里,例如,
example.net
,也会发生同样的情况

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

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

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

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

,您可以通过使用斜杠作为域路径来设置所有域都可用的cookie。参见
setcookie(“TestCookie”,“time()-3600”,“/”,“.example.com”,1)
如果你决定切换到HTTPS,这也会帮你省去很多麻烦,我以前的SEO同事也提到过,这有助于避免搜索引擎对“重复内容”的指责。好吧,重复内容问题可以通过使用规范URL来避免,但你的评论仍然有效,谢谢:)。一个准确的评估,但它没有提供任何可操作的信息来帮助解决OP(我猜这就是这个答案被否决的原因)。任何带有www前缀的域通常被称为裸域
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule (.*) http://www.example.com$1 [R=301]