[英]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
您需要强制www
或no-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.