wordpress多站点(MU)用二级域名(SUBDOMAIN)的单点登录(SSO)问题

我将我的wordpress多站点从子目录(subdirectory)改为子域名(subdomain)后,希望用户能够在多站点间实现单点登录(SSO),但是始终不能实现。cookie不能共享。经仔细查看代码,发现在ms-default-constants.php文件中有如下代码:

/**
* @since 2.6.0
*/
if ( !defined( 'ADMIN_COOKIE_PATH' ) ) {
if( !is_subdomain_install() ) {
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
} else {
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
}
}

就因为define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );导致cookie的有效路径为/wp-admin,其他目录及根目录都不能共享auth_cookie,解决办法如下:

在wp-config.php中增加:

define('COOKIE_DOMAIN', '.xxx.com');

define('ADMIN_COOKIE_PATH', '/');

问题得到解决。

你可能感兴趣的:(PHP,Wordpress)