簡體   English   中英

使用PHP / Nginx將cookie域從無域遷移到.mydomain.com

[英]Migrate cookie domain from no domain to .mydomain.com with PHP/Nginx

我有一個用PHP編寫並在Nginx HTTP服務器上運行的網站。 我有一個名為“ locale”的cookie,它代表用戶的語言環境。 6個月來,我將像這樣發送cookie:

setCookie("locale", "fr", time() + 36000, "/");

作為不含Cookie的域名,我知道它僅在我的單個域名“ www.mydomain.com”上可用。

但是現在,我想創建2個新聞子域:

  1. m.mydomain.com(移動部分)
  2. secure.mydomain.com(安全版本)

我看到m或安全無法訪問在www上設置的“語言環境” cookie。 所以現在我要像這樣發送cookie:

setCookie("locale", "fr", time() + 36000, "/", ".mydomain.com");

是的,我的cookie現在隨處可見! 但是,由於有些用戶已經瀏覽過我的網站,因此他們的域名較少,而cookie卻是新域名,他們的瀏覽器向我發送了兩個cookie,但PHP給了我前一個。 結果,沒有人可以再更改語言環境。

問題是:如何從該域較少的cookie遷移到域指定的cookie? 不更改cookie名稱。

您設置的第一個不帶域的Cookie默認為www.mydomain.com,因為它比“ .mydomain.com”更具體,所以選擇的是原始Cookie。 在此處閱讀已接受的答案。

如何獲取特定Cookie的域?

作為結論,我將在1周的時間內將其放入我的index.php文件中:

setCookie('locale', null, time() - 5000, '/');

為了刪除無域cookie。 我已經在所有主流瀏覽器上進行了測試,但看不到與以下任何沖突:

setCookie('locale', 'fr', time() + 36000, '/', '.mydomain.com');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM