【问题标题】:Sessions break when www prefixed to url当 www 前缀为 url 时会话中断
【发布时间】:2015-04-07 02:34:22
【问题描述】:

如何使用 $_SESSION 变量解决这个问题?

当我在http://www.example.com 时,会话变量存在,并运行此代码:

echo 'Printing session variables: <br><br><pre>';
foreach ($_SESSION as $key=>$val)
echo $key. ": ".$val. "<br>";
echo '</pre>';

但是,如果我在 http://example.com,则没有会话变量。

无论www. 是否带有前缀,我怎样才能使$_SESSIONs 工作相同?

我希望网站默认为http://example.com,而不是http://www.example.com

【问题讨论】:

标签: php .htaccess session


【解决方案1】:

简单的答案是在 .htaccess 文件中添加一行以强制 URL 使用 www。或者没有 www。

【讨论】:

    【解决方案2】:

    The Guest的评论中,我找到了使用.htaccess文件重写URI的正确解决方案,以便www前缀被重写为非www形式,这是一个轻微的顶级答案的变化here

    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^www.example\.com
    RewriteRule ^(.*)$ http://example.com/$1 [R=permanent,L]
    

    Original answer 默认为www.example.com URI 形式;上述变体将所有内容默认为 non-www URI 形式。

    【讨论】:

      猜你喜欢
      • 2018-08-28
      • 1970-01-01
      • 2014-08-03
      • 2012-04-10
      • 2011-01-13
      • 2010-12-10
      • 2013-08-01
      • 2017-07-13
      • 1970-01-01
      相关资源
      最近更新 更多