2011-05-12 26 views
4

當我點擊我們的網站通知電子郵件中的鏈接時,我一直在丟失我的會話變量。在此之後,我的頭腦很長一段時間後,我今天意識到,www.domain-name.com不包含會話變量,而domain-name.com!如何在多個子域中使用會話變量?

爲什麼會發生這種情況?我該怎麼做才能正確設置(php-apache)?

+0

感謝所有幫助我的問題!這是我加入到我的.htaccess文件,使domain.com重定向到www.domain.com '選項+的FollowSymLinks RewriteEngine敘述 上 的RewriteCond%{HTTP_HOST}^domain.com [NC] 重寫規則^(。 *)$ http://www.domain.com/$1 [r = 301,nc]' 再次感謝! :) – sniper 2011-05-12 06:31:16

回答

1

'www'沒有什麼技術上的特殊之處。域名'domain.com'與'www.domain.com'不同。如果您想關聯它們,那麼通常需要在HTTP服務器配置中明確指出。

+0

謝謝Bignose!將www.domain.com指向domain.com可以幫助快速解決問題嗎?我不是一個服務器人,也不是一個程序員。但願意學習以正確的方式解決問題! – sniper 2011-05-12 02:51:44

3

會話基於cookie,每個域都是。
www.domain.com是與domain.com不同的域名,因此它們的Cookie保持分開。

標準做法是選擇一個變體,301將其他變體重定向到首選變體。

+0

哦,現在有理由爲什麼我已經失去了會議! :) – sniper 2011-05-12 02:53:17

2

會話ID存儲在一個cookie中,並且可以指定cookie如何對域名作出反應。

看看PHP的setcookie文檔。

您可以更改PHP的會話cookie配置有:

ini_set("session.cookie_domain", ".mydomain.com"); 
+0

感謝Nican!只是簡單地通過了setcookie文檔。將閱讀更多!當您的意思是「.mydomain.com」時,是否包含domain.com的所有子域名(包括http://www.domain.com和http://domain.com)? – sniper 2011-05-12 02:57:02