2009-07-14 60 views
3

我使用PHP進行編程。如何在從一個子域重定向到另一個子域時保留會話信息?

我想重定向HT TPS://abc.example.com/blah1/blah2到HTT PS:// w^ ww.example.com/blah1/blah2,但我不希望重定向HTT PS://abc.example.com重定向到HT TPS:// WW w.example.com

是否有可能同時保持整個重定向會話信息?

謝謝。

+0

我希望我正確編輯了這個問題。 – 2009-07-14 20:32:22

+0

謝謝。這就是我想要的。我只是不能發佈鏈接作爲新客戶-_- – 2009-07-16 17:16:03

回答

3

您現在可以繼續使用重定向,但可以調整session.cookie_domain以使用頂級域(例如example.com)。您可以在您的php.ini文件中使用session_set_cookie_params或設置session.cookie_domain(或php_value指令後的.htaccess文件中)。這應該允許您的會話信息在您網站的所有子域中保留。

-2

使用JavaScript重定向。

+0

當用戶禁用Javascript時會發生什麼? – MitMaro 2009-07-14 20:04:17

1

如果您使用cookie作爲會話ID,那麼您需要爲常用域設置cookie。如果您正在使用www.example.comfoobar.example.com,你需要設置cookie爲example.com有它適用於這兩個www.example.comfoobar.example.com

0

如果你可以使用Apache的重定向你可以嘗試

RedirectMatch /(.+) https://www.domain.com/$1 

用PHP這將是

<?php 


    if ($_SERVER['REQUEST_URI'] != "/") { 
     header("Location: ".$_SERVER['REQUEST_URI']); 
     exit; 
    } 

?> 

關於會話被無效,像濃湯說,有主域名發佈Cookie而不是具體的。

+0

`REQUEST_URI` *從不*空。它總是以至少`/`開始。 – Gumbo 2009-07-14 20:07:07

0

我想說,你可以通過張貼(POST)你的sessionid到一個新的域名來重定向,並使用你自己的會話處理程序將你的會話數據存儲在mysql中。

相關問題