所以我有一个小网站,要求用户使用用户名和密码登录。 除了一个小问题外,一切都很好。
当用户使用网址studeez.net登录时,他/她将被重定向到顶部栏显示其名字,姓氏和注销选项的页面。
但如果我添加www。在链接之前,它变为www.studeez.net,用户将获得登录/注册选项。
这是一个非常重要的问题,因为当用户尝试登录时,他或她会收到他们已经登录的反馈。
我如何协调studeez.net和www.studeez.net以及所有后续网址,例如studeez.ney / path / to / page和www.studeez.ney / path / to / page
答案 0 :(得分:1)
您需要强制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>
this question可能重复。
答案 1 :(得分:0)
使用.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。