要实现不同域名的WordPress多站点使用相同登录,可以通过以下步骤和代码示例来解决:
/* 启用多站点功能 */
define('WP_ALLOW_MULTISITE', true);
在WordPress后台设置中启用多站点:登录WordPress后台,依次点击“工具”->“网络设置”,选择子目录或子域名的多站点结构,并按照提示完成设置。
修改.htaccess文件:根据选择的多站点结构,在.htaccess文件中添加以下代码。
如果选择子目录结构:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# 禁止访问 wp-admin 目录
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
# 允许上传文件和多媒体
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(jpg|jpeg|gif|png|ico|css|js))$ $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(zip|gz|rar|7z|exe))$ $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(html|htm|txt))$ $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(mp4|mp3|ogg|pdf|doc|docx|xls|xlsx|ppt|pptx|ai|psd|woff|ttf))$ $2 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
如果选择子域名结构:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# 禁止访问 wp-admin 目录
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
# 允许上传文件和多媒体
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(jpg|jpeg|gif|png|ico|css|js))$ $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(zip|gz|rar|7z|exe))$ $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(html|htm|txt))$ $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin/(.+\.(mp4|mp3|ogg|pdf|doc|docx|xls|xlsx|ppt|pptx|ai|psd|woff|ttf))$ $2 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST']);
define('COOKIEPATH', '/');
define('ADMIN_COOKIE_PATH', '/');
define('COOKIEHASH', md5($_SERVER['HTTP_HOST']));
// 允许跨站点登录
add_filter