2011-11-10 61 views
6

我有一個網站。如果我在這個格式的域登錄http://example.com,然後我的地址更改爲http://www.example.com,我發現我的帳戶中沒有記錄下來。如果我的地址更改爲http://example.com,我發現在我的帳戶登錄。爲什麼「www.example.com」與「example.com」不一樣?

我聯繫,我的主持人,他們告訴我它有一個編程問題。

我該如何解決這個問題,以便兩個地址代表相同的訪問/會話/ cookie?

我使用PHP MySQL的&

+0

並且您可以通過使用斜槓作爲域路徑將Cookie設置爲可用於所有域。請參閱'setcookie(「TestCookie」,「」,time() - 3600,「/」,「.example.com」,1);' – Mob

回答

9

www.example.comexample.com是兩個不同的領域爲就瀏覽器而言,顯然,儘管它們都指向同一個站點。如果您在那裏停放了一個不同的域名,例如example.net,也會發生同樣的情況。

爲了解決這個問題,通過.htaccess重寫URL相當常見。作出決定你更喜歡使用,並添加像這樣到你的.htaccess該域名:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example.com$ 
RewriteRule (.*) http://www.example.com$1 [R=301] 

(第一個移除,第二個增加了WWW)

+0

這也可以幫助您避免頭痛如果您決定要切換到HTTPS,並且過去曾與之合作過的搜索引擎優化人員提到,這有助於避免因搜索引擎造成「重複內容」。 – 2011-11-10 13:00:23

+0

那麼,通過使用規範的URL可以避免複製內容問題,但您的評論仍然是有效的,謝謝:)。 – mingos

6

我該如何解決這個問題,所以這兩個地址代表相同的 接入/會話/ cookie嗎?

你必須設置你的cookie這樣的域路徑,使之適用於所有子域名:(www是一個子域):

.domain.com

+1

任何帶有www前綴的域名通常都被稱爲NAKED DOMAIN – madhairsilence

-1

這是不一樣的.. 通常你可以去www.example.com只寫example.com到你的瀏覽器,但你的瀏覽器添加www到你的url .. 所以它基本上是不一樣的

+2

一個準確的評估,但它不提供任何可操作的信息來幫助解決OP(我猜這就是爲什麼這個答案downvoted)。 – 2011-11-10 13:01:49

相關問題