3

我正在用 PHP 编程。

我想重定向 https://abc.example.com/blah1/blah2 到 https://www.example.com/blah1/blah2 但我不想重定向 https://abc.example.com 重定向到 https://www.example.com

是否可以同时保留跨重定向的会话信息?

谢谢你。

4

5 回答 5

3

您可以像现在一样继续使用重定向,但请调整您session.cookie_domain以使用顶级域(例如 example.com)。您可以通过在 php.ini 文件(或在指令之后的 .htaccess 文件中)使用session_set_cookie_params或设置来做到这一点。这应该允许您的会话信息在您网站的所有子域中持续存在。session.cookie_domainphp_value

于 2009-07-14T20:16:44.570 回答
1

如果您使用 cookie 作为会话 ID,则需要为公共域设置 cookie。如果您使用www.example.comand ,则需要设置 cookie以使其对and均有效。foobar.example.comexample.comwww.example.comfoobar.example.com

于 2009-07-14T20:03:56.717 回答
0

如果您可以使用 apache 的重定向,您可以尝试

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

使用 PHP 将是

<?php


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

?>

关于会话失效,就像 Gumbo 说的那样,为主域名而不是特定域名发布 cookie。

于 2009-07-14T20:05:30.227 回答
0

我想说您可以通过将您的 sessionid 发布(POST)到一个新域来重定向,并使用您自己的会话处理程序将您的会话数据存储在 mysql 中。

于 2009-07-14T20:52:48.087 回答
-2

使用 javascript 重定向。

于 2009-07-14T20:02:25.550 回答