为什么Cookie只发送到http://www.example.com而不是http://example.com?

时间:2010-03-22 01:51:07

标签: php cookies

我有一个PHP登录,一旦有人登录就会设置2个cookie。问题是,如果您从http://www.example.com登录并转到http://example.com,您将发现自己没有登录。我认为这是因为浏览器只将cookie发送到第一种语法。

只有一个域,不同之处在于域名之前的www.,那么无论是否www.,如何将Cookie设置为整个域?

<?php setcookie('username',$username,time()+3600); ?>

2 个答案:

答案 0 :(得分:8)

setcookie(string $ name [,string $ value [,int $ expire = 0 [,string $ path [,string $ domain]

使用$ domain ='。site.com'代替'www.site.com'

答案 1 :(得分:6)

没有理由同时使用www和非www域。使用301重定向将所有内容发送到您选择的一个。我更喜欢非www,因为它更短。以下是如何使用htaccess进行重定向

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