我有一个有作者的互动网站。 当作者在www.mysite.com上进入该站点并登录时,会话变量变为
$_SESSION[loggedid]=true;
和网站主题更改。
但是当他进入mysite.com(没有www)时,即使他已登录,他也会看到默认主题,无法写入等。 我认为他们是不同的会议,我是对的吗?这取决于我的服务器或浏览器或什么?如何进行这2个相同的会话或将用户从一个重定向到一个?
答案 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!有时它限制了这个功能!