2009-07-14 116 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中。

相关问题