此教程为有多个同根域名需要绑定到同一个网站程序时需要进行的一些操作,网站所使用的网站程序、数据库等均是同一个。注意这个多个同根域名是比如a.a.com和b.a.com这样的根域名都是a.com,如果是a.com和b.com的话是不能进行自动登录的,这个是浏览器限制。另外二级目录也可以进行同步登录。
在大部分的教程中,都会只叫你更改默认的site_url和home_url,在我看来,这些教程都是不完整的,假设我们只是更改这两个值的话,会出现一些问题,比如媒体文件还是原来的域名、登录a域名再访问b域名时被要求重新登录。基于这些问题,我这边重新写一个教程,大概分为三步:
1、了解WordPress默认值
WordPress内置了一堆的默认值,比如内存分配、站点链接、后台链接等,这些默认值在其代码中保存,而这些默认值其实是一些更加高级的设置,他不建议由非开发者进行修改,因此并没有在后台中可以设置。
他们的值可以在根目录下wp-config.php进行手动自定义,对于多域名绑定所需要更改的内容在安装好wordpress的同时就已经被写入到这个文件。我们只需要对其进行修改即可。
2、更改登录相关的默认值
这里的更改其实都是在上面wp-config.php中修改和添加,有则修改,无则添加。主要修改三个方面:
1、地址修改
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
define( 'WP_CONTENT_URL', '//' . $_SERVER['HTTP_HOST'] . '/wp-content');//此处为媒体库的地址修改,也可以修改成CDN的地址
2、同一域名下的cookies共享
define('SECRET_SALT','Q$QuHIfQO^(CtrL5D(fcG$miB,fE2]-~::qoB,O_?o|TfgNfQB/x/kv$Tg1Aa7Hf');
define('ADMIN_COOKIE_PATH','/');
define('COOKIEPATH','/');
define('SITECOOKIEPATH','/');
define('COOKIEHASH',md5('xxx.xxx.xxx'));
define( 'COOKIE_DOMAIN', 'kekc.cn');//设置为你的根域名,比如我的kekc.cn
ini_set('session.cookie_domain', 'kekc.cn');//设置为你的根域名,比如我的kekc.cn
session_start();
3、缓存默认值的更改
好多人会开启wordpress数据库缓存,比如memcache、memcached、redis。需要设置缓存key相同,比如我设置的是kekc_cn:
define('ENABLE_CACHE', true);
define('WP_CACHE_KEY_SALT', 'kekc_cn');
至此,你应该已经能多同根域名同步登录了。
© 版权声明
THE END