我有WordPress的网站www.something.com
,和另一个PHP脚本子域www.panel.something.com
我的PHP脚本有自己独立的数据库和用户表我试图实现单点登录从Wordress和删除注册和登录过程中我的PHP脚本子域我按照这个答案在这里Single Sign On with SubDomains
作为第一步,我试图启用COOKIE的主域和子域,但当我把这个在我的wp-config.php
它不让我登录到WordPress
define( 'COOKIE_DOMAIN', '.something.com' );
甚至去除点
define( 'COOKIE_DOMAIN', 'something.com' );
不工作
我甚至试过
define( 'COOKIE_DOMAIN', 'www.something.com' );
但它不让我登录在我的主要WordPress网站
我尝试在我的www.something.com
和我的子域www.panel.something.com
中使用相同的cookie
谢谢
2条答案
按热度按时间x0fgdtte1#
值得注意的是
define('COOKIE_DOMAIN', 'yourdomain.com')
必须放置在
wp-config.php
中此线上方:require_once(ABSPATH . 'wp-settings.php');
它通常在文件的底部。(
wp-settings.php
也定义了COOKIE_DOMAIN
,PHP只允许你定义一次常量)你可以使用chrome开发工具来检查你的配置是否被应用。查看您的网站,在开发工具中转到
Application
选项卡,单击左侧菜单上的Cookies
和您的域,然后找到名为wordpress_logged_in_<COOKIEHASH>
的cookie。domain
列应该与您在COOKIE_DOMAIN
中设置的内容匹配。如果该cookie未出现在列表中,则表示您未登录到当前页面。
xytpbqjk2#
对于任何在2022年甚至更晚的时候想知道的人来说,只要改变COOKIE_DOMAIN就可以了。我一直在尝试多种东西和谷歌搜索了一段时间,但这是工作正常现在。所以,只要包括这是你的wp-config.php文件:
来源:https://www.php.net/manual/en/function.setcookie.php
域名
Cookie可用于的(子)域。将此设置为子域(如“www.example.com”)将使cookie可用于该子域及其所有其他子域(即“www.example.com”)。w2.www.example.com)。要使cookie对整个域(包括其所有子域)可用,只需将该值设置为域名(本例中为'example.com')。
仍在执行已弃用的» RFC 2109的较旧浏览器可能需要前导。以匹配所有子域。