簡體   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