繁体   English   中英

example.com和www.example.com被视为不同的会话

[英]example.com and www.example.com are treated as different sessions

因此,我有一个小型网站,要求用户使用用户名和密码登录。 除了一个小问题,一切正常

当用户使用url studeez.net登录时 ,他或她将被重定向到一个页面,该页面的顶部栏显示他的名字,姓氏和注销选项。

但是,如果我添加www。 在链接变为www.studeez.net之前, 将为用户提供登录/注册选项。

这是个很严重的问题,因为当用户尝试登录时,他(或她)会收到有关他们已经登录的反馈。

我如何协调studeez.net和www.studeez.net以及所有后续URL,例如studeez.ney / path / to / page和www.studeez.ney / path / to / page

您需要强制wwwno-www将用户会话保持在同一站点上。 您可以使用此htaccess条件重写到正确的域。 此示例将强制使用www

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^yoursite.com [NC]
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=301,NC,L]
</IfModule>

此问题可能重复。

禁止使用.htaccess文件或将服务器配置修改为使用mod_rewrite,这可以作为纯PHP解决方案正常工作:

$sname = session_name(); // Get the name of the session cookie.
if ( !isset($_SESSION) ) session_start(); // If a session has not been started then start one.
$sid = ( isset($_COOKIE[$sname]) ) ? session_id($_COOKIE[$sname]) : session_id();  // Get an encrypted session identifier.
setcookie($sname, $sid, time()+86400, "/", ".example.com", false, true); // Set the .example.com cookie so we can work across all sub-domains.

将.example.com更改为域名。 没有子域的domain.tld格式,但包括开头的句点。 这应该设置一个Cookie,该Cookie可以在您域的所有子域中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM