0

所以我有一个小网站,要求用户使用用户名和密码登录。除了 1 个小问题外,一切正常

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

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

这是一个很大的问题,因为当用户尝试登录时,他或她会收到他们已经登录的反馈。

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

4

2 回答 2

1

您需要强制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>

这个问题可能重复。

于 2013-09-28T14:55:35.100 回答
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 更改为 .example.com 中的任何域名。domain.tld格式没有子域,但包括开头的句点。这应该设置一个适用于您域的所有子域的 cookie。

于 2013-09-28T16:47:28.870 回答