开启 WordPress多站点的方法及对应伪静态设置

建站技术115字数 1903阅读6分20秒阅读模式

一般我们安装WordPress程序搭建站点都是单站点模式。实际上也有部分的同学是有需要用安装多站点的。在这里,目前新版本的WordPress已经支持比较简单的开启WordPress多站点模式。

第一、开启多站点配置

define('WP_ALLOW_MULTISITE', true);

这里,我们在 wp-config.php中添加上面代码,然后登录网站后台,你可以看到工具-配置网络。

配置提交。

然后我们需要到对应的文件添加配置规则。

1、子域名

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
define( 'DOMAIN_CURRENT_SITE', 'www.idcxen.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

2、子目录

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false);
define( 'DOMAIN_CURRENT_SITE', 'www.idcxen.com' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );

第二、添加多站点

配置完毕之后,我们现在可以去后台看看添加多站点。

重新登录后看到如上图,可以对站点管理,根据我们设置的子域名或者子目录来进行添加多站点。

第三、伪静态规则

对于多站点,我们还需要对多站点伪静态重新设置。

这里,根据 Apache和Nginx不同的引擎有不同设置。

1、Apache引擎

#子域名

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]     
    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]     
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]

#子目录

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]     
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,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]

2、Nginx引擎

如果我们是用的Nginx引擎的话,则需要在对于conf文件添加,不是替换。

rewrite ^/([_0-9a-zA-Z-]+/)?wp-admin$ /$1wp-admin/ permanent;
if (-f $request_filename){
	set $rule_2 1;
}
if (-d $request_filename){
	set $rule_2 1;
}
if ($rule_2 = "1"){
#ignored: “-” thing used or unknown variable in regex/rew
}
rewrite ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) /$2 last;
rewrite ^/([_0-9a-zA-Z-]+/)?(.*.php)$ /$2 last;
rewrite /. /index.php last;

然后我们需要配置站点vhost中的域名添加*解析。重启Nginx生效。

最后,我们还需要配置 WordPress固定链接不能用直接死链,而是用灵活的相对链接。

投上你的一票
 
麦子
  • 本文由 麦子 发表于 2024年3月13日 08:35:21
  • 转载请务必保留本文链接:https://www.idcxen.com/enable-wpmultisite.html
  • WordPress多站点开启