与网址的不同会话与-www和without-www

时间:2011-07-22 01:07:43

标签: php session url

我有一个有作者的互动网站。 当作者在www.mysite.com上进入该站点并登录时,会话变量变为

$_SESSION[loggedid]=true;

和网站主题更改。

但是当他进入mysite.com(没有www)时,即使他已登录,他也会看到默认主题,无法写入等。 我认为他们是不同的会议,我是对的吗?这取决于我的服务器或浏览器或什么?如何进行这2个相同的会话或将用户从一个重定向到一个?

5 个答案:

答案 0 :(得分:13)

将此添加到.htaccess文件中:

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

答案 1 :(得分:5)

这是RewriteRule

^(.*)$ http://www.mysite.com/$1 [R=permanent,L]

而不是

$1 [R=permanent,L]

如果您在 php.ini 中添加.com$1 [R=permanent,L]并尝试 mysite.com/index.php?id=934 ,则会将您重定向到 mysite.comindex.php /?id934

答案 2 :(得分:1)

使用此:http://ca3.php.net/session_set_cookie_params 要将域设置为匹配所有子域,请执行以下操作:

session_set_cookie_params($lifetime, '/', '.domain.com');

您需要在调用session_start()之前使用它。

您可以直接从上面的链接中使用此代码示例,这样您就可以保留除域之外的所有当前设置:

$currentCookieParams = session_get_cookie_params(); 

$rootDomain = '.example.com'; 

session_set_cookie_params( 
    $currentCookieParams["lifetime"], 
    $currentCookieParams["path"], 
    $rootDomain, 
    $currentCookieParams["secure"], 
    $currentCookieParams["httponly"] 
); 

session_name('mysessionname'); 
session_start(); 

答案 3 :(得分:0)

session.cookie_path设置为域.yourdomainname.tld,记下起点(.)。

答案 4 :(得分:0)

session.cookie_domain =

php.ini指令

尝试使用

session_set_cookie_params(0, '/', '.yourdomain.com');

前导点表示会话将影响每个域。注意SUHOSHIN!有时它限制了这个功能!