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

Rya*_*yan 2 php cookies

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

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

<?php setcookie('username',$username,time()+3600); ?>
Run Code Online (Sandbox Code Playgroud)

Amy*_*y B 8

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

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


Syn*_*ror 6

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

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