在两个子域安装之间共享WordPress登录Cookie

时间:2017-01-18 作者:Paul Hill

我有两个wordpress安装在各自的子域上。

sub1.domain.comsub2.domain.com

我想在sub1和sub2之间共享登录信息。我已经将它们配置为使用相同的MySQL数据库,并且它们使用相同的数据库表。

我可以使用相同的凭据登录这两个网站。

Sub2的wp配置。php文件包含以下代码:

define(\'CUSTOM_USER_TABLE\', \'wp_c_users\');

define(\'CUSTOM_USERMETA_TABLE\', \'wp_c_usermeta\');
这一切都很好。我的问题是,这些cookie没有在站点之间共享。这两个站点不共享cookie,只需删除其他站点并创建一个新cookie即可。

我将以下代码添加到sub1和sub2的wp配置中。php:

define(\'COOKIEPATH\',\'domain.com/\'); // Replace with your initial domain name
define(\'SITECOOKIEPATH\',\'domain.com/\'); // Replace with your initial domain name
define( \'COOKIEHASH\',    md5( \'Y@^ET#UF!RG7#KQXP04^WF\' ) );
define(\'COOKIE_DOMAIN\', \'domain.com\');
当用户登录到sub1时,cookie创建得很好,然后当我转到sub2时。领域com,我还没有登录此网站。

当我尝试登录到sub2时。领域com时,它会删除sub1的Cookie并覆盖它们。

如何让这两个wordpress安装使用相同的cookie,而不是覆盖彼此??

非常感谢您的帮助!

2 个回复
SO网友:Frank P. Walentynowicz

今天,我发布了一个完全相同问题的有效解决方案。您可以在此处看到:How to share WordPress session and cookies between domain and subdomain?. 我在自己的几个网站上使用这种方法。

SO网友:Lafif Astahdziq

似乎需要在COOKIE_DOMAIN 然后离开COOKIEPATHSITECOOKIEPATH 未定义。

所以常数应该是

define( \'COOKIEHASH\', md5( \'Y@^ET#UF!RG7#KQXP04^WF\' ) );
define( \'COOKIE_DOMAIN\', \'.domain.com\' );

相关推荐

Cookies in template

我需要根据cookies只显示一次页面的某些部分。主要问题是我只能在插件中设置cookie,挂起init操作。我已经读了20页的谷歌,这个网站,问了2个论坛,但我仍然有这个问题。任何帮助都将不胜感激!