【问题标题】:Why are cookies only sent to http://www.example.com and NOT http://example.com?为什么 cookie 只发送到 http://www.example.com 而不是 http://example.com?
【发布时间】:2010-03-22 01:51:07
【问题描述】:

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

只有一个域,区别在于域名前的www.,那么无论有没有www.,如何设置cookie到整个域?

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

【问题讨论】:

标签: php cookies


【解决方案1】:

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

使用 $domain = '.site.com' 而不是 'www.site.com'

【讨论】:

  • 请注意,这会将 cookie 发送到您的所有子域,这可能不是我们想要的行为。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2016-01-16
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-21
    • 1970-01-01
    相关资源
    最近更新 更多