从一个子域重定向到另一个子域时如何保留会话信息?

发布于 2024-07-26 19:05:36 字数 264 浏览 5 评论 0原文

我正在使用 PHP 编程。

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

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

谢谢。

I'm programming with PHP.

I want to redirect https://abc.example.com/blah1/blah2 to https://www.example.com/blah1/blah2 but I don't want to redirect https://abc.example.com redirect to https://www.example.com

Is it possible while preserving session information across the redirections?

Thank you.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

月亮邮递员 2024-08-02 19:05:36

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

You can continue using the redirects as you have them now, but adjust your session.cookie_domain to use the top-level domain (e.g. example.com). You can do this by using session_set_cookie_params or setting session.cookie_domain in your php.ini file (or in a .htaccess file after php_value directive). That should allow your session information to persist across all sub-domains of your site.

放赐 2024-08-02 19:05:36

如果您使用 cookie 作为会话 ID,则需要为公共域设置 cookie。 如果您使用 www.example.comfoobar.example.com,则需要设置 cookie让 example.comwww.example.comfoobar.example 都有效.com

If you’re using a cookie for the session ID, then you need to set the cookie for a common domain. If you are using www.example.com and foobar.example.com, you need to set the cookie for example.com to have it valid for both www.example.com and foobar.example.com.

看轻我的陪伴 2024-08-02 19:05:36

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

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

使用PHP,这将是

<?php


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

?>

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

If you can use apache's Redirect you can try

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

with PHP it would be

<?php


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

?>

About session being invalidated, like Gumbo says, have the cookie issued for the main domain name instead of the specific ones.

葵雨 2024-08-02 19:05:36

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

I'd say you can redirect by posting (POST) your sessionid to a new domain and store your session data in mysql with your own session handler.

三生殊途 2024-08-02 19:05:36

使用 JavaScript 重定向。

Use a javascript redirect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文